Docker 之 docker命令介紹
容器狀態轉換相關的命令列表關系,docker的狀態轉換和管理的命令,即docker的生命周期管理的命令,如下截圖
圓形圖標表示docker的狀態
方框表示命令執行命令後觸發的事件
箭頭的命令,為docker的相關命令,命令執行後,會觸發相關事件,事件在方框內表示
菱形裏的表示判斷,取決於策略設定,如一旦某個容器被意外終止,如OOM,是否被restart
容器處於created或者stopped狀態,可以被刪除
2 命令介紹
docker pull 拉取相關鏡像
每個鏡像文件都有其id,即其校驗碼,如只拖下來1.27.2這個版本,-a則把所有版本都拖下來,如
docker pull busybox:1.27.2
獲取最新的centos鏡像,默認獲取latest版本
docker image pull centos
顯示本地鏡像信息
docker image ls
或者
docker images
查找鏡像
如查找centos鏡像,official 顯示ok表示官方的,一般采用官方的
docker search centos
創建和啟動
create:僅創建容器不啟動
run:既創建容器又啟動容器
可以通過命令查看相關的參數選項
docker run --help
如下
指定容器的名字 --name
-i是指登錄到終端後進入交互式,
-t和-i一起使用,即-it
--detach 表示不附加終端
但是--rm表示容器停止後就刪除,一般和
運行如下的命令,運行容器
docker run -it --name sunnybox busybox:1.27.2
啟動docker的時候會自動創建docker0的橋,ip 為 172.17.0.1,默認不指定網絡的話,容器會被默認指定到這個橋上,ip從172.17.0.2這個ip開始分配
啟動容器,執行命令後,將容器刪除
如執行ifconfig -a後刪除容器,這個命令的意義在於可以用來探查相關容器的信息
docker run --name sunnybox03 --rm busybox:1.27.2 ifconfig -a
查看運行中的容器的進程信息
docker top
top後跟上容器名稱
docker top sunnybox
查看運行中的容器
docker ps
查看所有的容器,包括沒有運行的容器,加-a選項
docker ps -a
停止容器
命令有stop和kill,其中,stop命令比較安全,kill強制停止,可能導致數據丟失
docker stop sunnybox
或者
docker kill sunnybox
重啟運行中的容器
docker restart sunnybox
暫停容器運行
容器暫停後,相當於狀態凍結在內存中,不會響應請求
docker pause sunnybox
解除暫停容器,重新運行
docker unpause sunnybox
附加終端
鏡像在後臺運行,通過attach進入運行中容器
docker attach sunnybox
要剝離終端,可以同時按照ctrl+p,然後再快速按ctrl+q進行剝離
刪除容器
容器停止默認不會被刪除的,用以下命令刪除
docker rm sunnybox
註意,docker有可能會因為宿主機內存耗盡而終止,內核會隨機選擇docker內存占用大的容器,將其強制停止。
查看鏡像或者容器的詳細信息
docker inspect sunnybox
容器的信息用json格式的字典進行詳細
docker inspect busybox:1.27.2
在docker容器中,命令不能運行為守護進程,原因是運行為守護進程,就會脫離當前終端,脫離當前終端,就相當於當前容器沒有進程,那麽當前容器生命周期就結束了,如下,啟動一個命令,設定busybox啟動httpd服務,但是添加選項-f,表示httpd不啟動為守護進程,
如果執行以下命令,那麽就會卡住,這是正確的,因為httpd此時運行起來,沒有進入交互式模式,所以卡住,如果把選項-f換成-d選項就可以運行為守護模式,不建議使用-d選項
docker run --name sunnyweb busybox:1.27.2 httpd -f /
在已經運行的容器中運行其他命令,使用選項 exec
如下命令,在已經運行的容器sunnyweb執行命令netstat -tnl,查看容器內部監聽端口信息
docker exec sunnyweb netstat -tnl
Docker 之 docker命令介紹