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": ["http://docker.mirrors.ustc.edu.cn","http://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 鏡像名稱:版本 .

      \