Docker 之 docker命令介紹

1  概述
web

容器狀態轉換相關的命令列表關係,docker的狀態轉換和管理的命令,即docker的生命週期管理的命令,以下截圖docker

圓形圖標表示docker的狀態json

方框表示命令執行命令後觸發的事件centos

箭頭的命令,爲docker的相關命令,命令執行後,會觸發相關事件,事件在方框內表示安全

菱形裏的表示判斷,取決於策略設定,如一旦某個容器被意外終止,如OOM,是否被restartbash

容器處於created或者stopped狀態,能夠被刪除網絡


2  命令介紹ide

docker pull 拉取相關鏡像工具

每一個鏡像文件都有其id,即其校驗碼,如只拖下來1.27.2這個版本,-a則把全部版本都拖下來,如spa


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

容器的資源限制

要爲容器配置資源,須要用cgroup來配置,

docker 提供了三個參數在docker run和docker creat命令容許在設置容器時管理三種不一樣資源

以下三個選項

內存: -m  或者 --memory:設置內存大小,若是不指定,默認爲docker宿主機的可用內存

CPU: --cpu-shares :表示有多個容器時,按什麼比例把CPU分配給某些容器的比例,權重設置是2的整數倍,如512:1024表示兩個容器的的CPU佔比爲1:2

       --cpuset-cpus:表示把哪幾個cpu配置給這個容器,而不是使用宿主機的全部CPU,用於綁定CPU核心

設備

      --devices : 把某個物理設備受權給容器

     --device  /dev/cdrom:把光盤分區受權給某個容器,其餘容器看不到

通常不作設置,若是要設置,通常在容器編排工具裏進行設置

相關文章
相關標籤/搜索