1. 程式人生 > 資訊 >微軟商店喜加一:《奇異人生》製作商新作《謂何:第 1-3 章》免費領取

微軟商店喜加一:《奇異人生》製作商新作《謂何:第 1-3 章》免費領取

  • Docker 常用命令

    • 學習網站:https://yeasy.gitbook.io/docker_practice/

    • 檢視所有映象:“docker images”

    • 刪除image

      • docker rmi IMAGE ID
      • 若上步無法刪除,則需要先刪除執行過該images的container,先利用“docker ps -a”檢視退出的container;再利用“docker rm CONTAINER ID”;再利用上步刪除images
      • 若發現無法刪除container,利用“docker ps”檢視正在執行的container,再利用“docker stop CONTAINER ID”關閉container,最後再利用上一步操作完成
    • 非root使用者加入docker使用者組省去sudo

      • sudo usermod -aG docker

      • 檢視使用者組中有木有docker組“sudo cat /etc/group | grep docker”

      • 確定可以直接執行docekr命令 “docker info”

      • 若提示沒有許可權,則修改許可權“sudo chmod a+rw /var/run/docker.sock”

    • docker基本概念

      • 映象(Image):特殊的檔案系統,不包含動態資料,類似於面向程式設計中的“類”
      • 容器(Container):容器是映象執行時的實體,可以被建立,啟動,停止,刪除,暫停。類似於面向程式設計中的“例項”。容器的實質是程序,擁有獨立的名稱空間,root檔案系統,網路配置等,處於一個隔離環境中。
      • 倉庫(Repository):映象構成後,很容易在本機上執行,為了在其他伺服器上使用映象,需要一個集中的儲存,分發映象的服務Docker Registry 。倉庫可用於儲存映象,一個倉庫包含多個標籤,每個標籤對應一個映象。利用<倉庫名>:<標籤>指定具體是該軟體的哪個版本的映象。倉庫多以兩段式路徑出現,如jwilder/nginx-proxy,前者使用者名稱,後者軟體名。
    • docker 執行

      • 有了映象後,以該映象為基礎啟動一個容器:“docker run -it --rm ubuntu:18.04 bash”
        • -it:表示-i(互動式操作)和-t(終端),-it表示互動式終端
        • --rm:容器退出後即刪除
        • ubuntu:18.04:映象:版本
        • bash:使用bash作為互動式shell,一般寫作/bin/bash
      • 退出容器:exit
    • 使用Dockerfile定製映象

      • 新建文字檔案:“mkdir test && touch Dockerfile && vi Dockerfile”
      • 編輯Dockerfile
        • FROM:指定基礎映象。為了使映象體積更小,可以使用:“FROM scratch”
        • RUN:執行命令列命令,分為shell格式和exec格式,前者為“RUN <命令>”,後者“RUN ["可執行檔案",“引數1”,“引數2”]”,類似於函式呼叫的格式。為了降低映象層數,儘量減少RUN的數量,不同命令可以使用“&&”串起來,用一個RUN將其放在一層。Dockerfile支援Shell類的行尾新增 \的命令換行,行首新增#註釋。
        • COPY:將從構建上下文目錄中 <源路徑> 的檔案/目錄複製到新的一層的映象內的 <目標路徑> 位置,例如 COPY src pdffigure-detection,需要提前指定工作目錄,"WORKDIR /apps"
        • ADD:類似於COPY,但是源路徑可以是URL,一般不用
        • CMD:ubuntu中CMD預設為/bin/bash
        • ENV:設定環境變數
      • 構建映象:在Dockerfile目錄下直接:“docker build -t nginx:v3 .”,也可以用-f指定Dockerfile路徑,例如:“docker build -f Dockerfile -t nginx:v3 .”
    • 其他映象製作方法

      • 從rootfs壓縮包匯入:docker import 壓縮包(壓縮包下載地址)倉庫名:標籤
      • 儲存映象為壓縮包:docker save Image(映象名) 壓縮名 ,例如"docker save hello-world" a.tar
      • 從壓縮包載入映象:docker load -i 壓縮包地址 ,例如"docker load -i a.tar"
    • docker的容器與本地檔案複製

      • 本地to容器:docker cp path Container ID:path,例如 "docker cp /home/wps/ssh.txt 1b4cd38be498:/apps/k.txt"
      • 容器to本地:docker cp Container ID:path path,例如"docker cp 1b4cd38be498:/apps/requirements.txt /home/wps/r.txt"
    • 容器操作

      • 檢視所有容器:docker ps -a

      • 檢視當前開啟的容器:docker ps

      • 開啟容器:docker start Container ID

      • 停止容器:docker stop Container ID

      • 進入容器:docker attach Container ID

      • 互不干擾的進入容器:docker exec -it Container ID bash

      • 匯出容器到本地:docker export Container ID > 壓縮包名

      • 匯入容器快照:docker import 壓縮包 倉庫名:標籤

      • 刪除容器:先終止容器,再刪除:"docker rm Container ID"

      • 容器儲存為映象:docker commit [Container ID] [倉庫名:標籤]

    • 倉庫操作

      • 查詢官方倉庫映象:docker search 映象名
      • 登入:docker login
      • 拉取映象:docker pull 映象名
      • 推送映象:docker tag 映象名 username/映象名,例如:docker tag ubuntu:18.04 username/ubuntu:18.04;也可以登入後直接push,例如:docker push username/ubuntu:18.04