聊聊Docker基礎:Docker運行原理
今天給大家繼續分享Docker相關的知識,今天主要介紹Docker運行原理以及生命周期,希望對大家能有所幫助!
1.Docker底層運行原理
Docker基于客戶端(容器)-服務器(Docker引擎)結構的系統,Docker的守護進程運行在宿主主機上,客戶端(容器)通過Socket向Docker引擎發送相應的指令,Docker服務器就會執行相應的命令。
Docker會以root權限運行它的守護進程,來處理普通Linux用戶無法完成的操作(如掛載文件系統等操作)。
2.Docker執行run命令的流程
- Dockers引擎會在本地查找鏡像
- 本地找到鏡像 然后啟動鏡像
- 本地沒有找到鏡像,然后根據Docker引擎配置的倉庫地址,遠程去查找鏡像。
- 遠程查詢到鏡像,把鏡像下載到本地,然后啟動鏡像
- 遠程查詢到鏡像,Docker返回錯誤,提示鏡像遠程未找到。
- 運行中的鏡像支持:停止、啟動、重啟、刪除(先停止才可以刪除)操作。
3.Docker容器的生命周期
Docker容器主要有以下7個狀態:
- created:已創建,還未運行的容器
- running:正在運行中的容器
- restarting:容器正在重啟中
- removing:容器正在遷移中
- paused:已暫停狀態的容器
- exited:停止狀態的容器
dead:死亡,主要是操作系統出現異常或者斷電關機等有可能引發dead狀態,不是很常見。
暫停和停止狀態的區別
docker pause 命令掛起指定容器中的所有進程
docker stop 容器內主進程會在指定時間內被殺死,默認為10s后。
4、Docker操作容器命令示例
創建容器tomcat容器;
[root@ecs-337444 ~]# docker create --name tomcattest tomcat:8.5.38
1b6a0f79e3d3b030c3f5fc1b170f6205815c16a363cafc72f0b927e846f73cf5
docker ps -f status=created # 根據狀態檢索docker ps -a -f name=tomcattest #根據容器名檢索;
[root@ecs-337444 ~]# docker ps -a -f name=tomcattest
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54ae70aca0db tomcat:8.5.38 "catalina.sh run" 6 minutes ago Created tomcattest
docker pause tomcattest #暫停容器docker unpause tomcattest # 取消暫停;
docker stop tomcattest #停止容器;
docker rm tomcattest #刪除容器;