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 鏡像名稱:版本 .
\
-