docker需要掌握的程度

語言: CN / TW / HK

什麼是Docker?【精通】

  • 定義:是一個開源的容器引擎技術

  • 使用場景:

    • 在環境下進行環境的遷移
  • 實現原理:

    • 是一個分層複用的檔案系統;每一層都是一個獨立的軟體;在最底層複用Linux系統的bootfs
  • 組成(7部分):

    • 倉庫:用於存放映象
    • 本地守護程序:這個就是軟體執行的程序
    • 客戶端:命令列中的docker 命令
    • 映象:就是一個製作好的作業系統檔案,類似安裝作業系統的iso
    • 容器:就是映象執行起來的執行態系統
    • docker-compose:用於批量管理容器的工具
    • dockerfile:使用指令碼來製作映象的工具
  • 其它:

    • 一臺電腦可以執行多個容器,容器與容器之間是相互隔離的(既:每個容器使用的硬體資源相互不影響)

image-20210117104109675.png

安裝Windows版本

  • 推薦:

    • 開發用windows版本
    • 測試和生產用linux
  • 安裝過程:

    • 升級windows到10
    • 開啟wsl2子系統
    • 安裝docker的桌面版本
    • 在cmd中輸入 docker -v

如何修改Docker為國內映象下載

  • /etc/docker/daemon.json

    {"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]}

  • 重啟生效 systemctl restart docker

Docker守護程序/服務的操作命令【6個】【精通】

  • systemctl start docker
  • systemctl stop docker
  • systemctl restart docker
  • systemctl status docker
  • systemctl enable docker
  • systemctl disenable docker

Docker 映象的操作命令【7個】【精通】

遠端映象

  • docker search 映象關鍵字 搜尋遠端倉庫中的映象

  • docker pull 映象名稱:映象版本 下載映象到本地

  • docker push 把本地的映象上傳到遠端倉庫

本地映象

  • 刪: docker rmi 映象名稱:映象版本

    • docker rmi 主鍵
    • 有容器則不能刪除對應的映象
  • 查: docker images

    • docker images -q 指查詢映象的主鍵
  • 匯入:docker load -i 壓縮檔名稱

  • 匯出: docker sava -o 壓縮檔名稱 映象名稱:版本

Docker容器的操作命令【10個】【精通】

  • docker ps 檢視當前有那些執行的容器

    • docker ps -a 檢視當前本機有那些容器(執行和停止的容)
  • 建立容器 docker run 引數 映象名稱:版本 啟動後執行的命令

    • 互動式:建立後立即進入容器,如果推出容器,則容器自動關閉(exit)

      • docker run -it 映象名稱:版本 /bin/bash
    • 守護式:建立容器後,不自動進入,容器在後臺執行

      • docker run -id 映象名稱:版本 啟動後執行的命令
  • 進入容器:docker exec -it 【容器的名稱、容器的ID】 /bin/bash

  • 刪除容器:docker rm 【容器的名稱、容器的ID】

    • 執行中的容器不能刪除
  • 啟動容器:docker start 【容器的名稱、容器的ID】

  • 停止容器:docker stop 【容器的名稱、容器的ID】

  • 重啟容器:docker restart 【容器的名稱、容器的ID】

  • 檢視容器詳情:docker inspect 【容器的名稱、容器的ID】

  • 把容器提交成映象:docker commit 【容器的名稱、容器的ID】 映象名稱:版本

  • 檢視容器日誌:docker logs -f 容器名稱

Docker Run建立容器的引數【精通】

  • --name 指定容器的名稱

  • -d 後臺執行

  • -i 保持容器執行

  • -t 進入終端

  • -v 宿主機的絕對目錄:容器內部絕對路徑

  • -e 設定容器中的環境變數

  • -p 把容器的服務埠暴露給容器外面的應用訪問 -p 宿主機的埠:容器內部端

    • 一個容器可以暴露多個埠
  • --volumes-from=容器名稱 複製容器的掛載目錄給當前容器

資料卷【熟練】

  • 宿主機:容器執行的作業系統

image-20210117145137616.png

  • 資料卷:是在宿主機上共享了一個目錄檔案

    • 一個容器可以有多個數據卷
    • 一個數據卷可以被多個容器掛載

image-20210117145605424.png

使用docker安裝軟體的步驟【熟練】

  • 查詢映象

  • 下載映象

  • 執行容器 docker run

    • 是否要對映埠給容器外訪問?-p
    • 是否需要持久化資料(配置檔案、日誌、資料)?-v
    • 是否需要修改容器中預設的環境引數?-e

什麼是Dockerfile【精通】

  • 定義:是用指令碼來指做映象的工具

  • 常用命令(8條):

    • FROM,指定當前映象的上一個映象名稱和版本
    • COPY,拷貝宿主機上的檔案到映象中,不解壓
    • RUN 在映象中執行一條linux命令,mkdir /home/123
    • ADD,拷貝宿主機上的檔案到映象中,並且解壓縮
    • ENTRYPOINT,映象執行啟動後,執行的命令,不可覆蓋
    • CMD,映象執行啟動後,執行的命令,可覆蓋
    • ENV,設定環境變數
    • EXPOSE,映象執行成容器後,自動暴露的埠
  • 使用

    • 建立Dockerfile檔案

    • 在檔案中編寫映象的操作命令

      FROM centos:7 RUN yum install -y vim WORKDIR /user CMD /bin/bash

    • 編譯成映象

      docker build -t 映象名稱:版本 .

      \