docker需要掌握的程度
什麼是Docker?【精通】
-
定義:是一個開源的容器引擎技術
-
使用場景:
- 在環境下進行環境的遷移
-
實現原理:
- 是一個分層複用的檔案系統;每一層都是一個獨立的軟體;在最底層複用Linux系統的bootfs
-
組成(7部分):
- 倉庫:用於存放映象
- 本地守護程序:這個就是軟體執行的程序
- 客戶端:命令列中的docker 命令
- 映象:就是一個製作好的作業系統檔案,類似安裝作業系統的iso
- 容器:就是映象執行起來的執行態系統
- docker-compose:用於批量管理容器的工具
- dockerfile:使用指令碼來製作映象的工具
-
其它:
- 一臺電腦可以執行多個容器,容器與容器之間是相互隔離的(既:每個容器使用的硬體資源相互不影響)
安裝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 映象關鍵字 搜尋遠端倉庫中的映象
- 也可以通過http://hub.docker.com/網站進行搜尋
-
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=容器名稱 複製容器的掛載目錄給當前容器
資料卷【熟練】
- 宿主機:容器執行的作業系統
-
資料卷:是在宿主機上共享了一個目錄檔案
- 一個容器可以有多個數據卷
- 一個數據卷可以被多個容器掛載
使用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 映象名稱:版本 .
\
-