1. 程式人生 > >Docker 之 docker命令介紹

Docker 之 docker命令介紹

bar centos 參數 help 進入 pac load clas ets

1 概述

容器狀態轉換相關的命令列表關系,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表示容器停止後就刪除,一般和

--detach一起運行

運行如下的命令,運行容器

 docker run -it --name sunnybox busybox:1.27.2

啟動docker的時候會自動創建docker0的橋,ip 172.17.0.1,默認不指定網絡的話,容器會被默認指定到這個橋上,ip172.17.0.2這個ip開始分配

啟動容器,執行命令後,將容器刪除

如執行ifconfig -a後刪除容器,這個命令的意義在於可以用來探查相關容器的信息

 docker run --name sunnybox03 --rm busybox:1.27.2 ifconfig -a

查看運行中的容器的進程信息

docker top

top後跟上容器名稱

,如下查看新建的sunnybox

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命令介紹