接着上一篇,今天說一下Docker 有關容器的經常使用命令。算是比較詳細了吧。nginx
注:此命令做用是使用一個鏡像運行啓動一個容器。 在啓動運行的時候 會檢查docker 中是否包含了該鏡像 若是沒有包含 ,docker 會自動的在 docker 的倉庫中下載你想使用的鏡像。也就是說有時候我們能夠省略:Doker pull 命令。docker
Docker run 命令經常使用的參數bootstrap
1:--name 【鏡像名】 :centos
--name 給啓動的容器 起一個名字,若是不使用 –name docker的守護進程會自動給你的容器命名,這裏建議使用此參數,docker進程起的名太難記了bash
2:-d 網絡
若是想啓動一個在後臺運行的容器的時候執行如下命令:能夠啓動一個容器而且後臺運行 能夠建立一個守護式容器。學習
能夠對比一下名字ui
3:-t docker 會 分配一個僞終端並綁定到容器的標準輸入上,spa
4:-i則讓容器的標準輸入保持打開,使用的時候能夠兩個結合爲3d
5:– it 上面兩個的結合
演示一下使用不使用 – it 做用:
Docker run – name centos centos /bin/bash
Docker run – name centos -it centos /bin/bash
注:一個運行後直接閃退了,而且不會保持與運行,加上-it 後運行咱們會直接進入容器中,可是會在退出容器後中止容器。
有關docker run 的參數就先說這幾個,在後續文會繼續增長。
1:Docker ps 查看運行中的容器
咱們能夠看到 容器的ID,名稱,運行時間 端口等信息
2:Docker ps -a 查看全部運行中的和爲運行的
3:Docker ps -l 能夠查看你最後一個運行的容器
1:Docker rm
刪除 ID/名稱 爲某某的容器 (未運行的)
2:Docker rm `docker ps -a -q`
批量刪除未運行的容器
3:Docker rm -f
強制刪除運行中的容器
4:Docker rm -f `docker ps -a -q`
批量強制刪除運行中的容器
刪除就不演示了,可是後面的兩個堅定不推薦使用(就怕刪錯了謹慎爲上)
1:中止命令
Docker stop
Docker kill
這兩個均可以中止容器
區別:
stop 發送一個命令等待容器中止: 有等待時間
Kill 直接中止容器:沒等待時間
2:啓動命令
Docker start ID/名稱 啓動一個未運行(已中止)的容器
Docker start -i ID/名稱 以交互的方式啓動容器(直接會進入容器)
這個就不演示了,在使用-I 的時候不是每次都會成功的會卡住。這點注意了
1:exit
2:ctrl+d 退出和exit 效果同樣。
3:ctrl+p ctrl+q 這種組合的退出方式只適用與交互式容器
以上三個命令是在容器中使用的
1:Docker attach ID/名稱 注:退出後會中止容器
能夠進入一個正在運行的容器中。須要注意的是 Docker attach 這個命令是由缺陷的,很早就有了,有時候咱們想進入一個容器中的時候 卡住了,但不是沒次都會卡主有時候會有時候不會
好比:運行一個consul鏡像
docker run -d -P --name consul docker.io/consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul -client=0.0.0.0 -datacenter=dc1
查看結果:確保容器運行中
進入容器結果:
卡在這了不會動了,取消以後還會 中止正在運行的容器尷尬不。
2:啓動時進入容器。 在docker run 已經使用 注:退出後會中止容器
3:第三種是生產的時候推薦使用的 (退出後容器不會登出)
咱們使用PID進入容器查看容器的PID 兩種方法
docker inspect -f {{.State.Pid}} nginx
docker top nginx
結果:
進入容器:使用nsenter 個人centos 自帶此命令,沒有的能夠安裝一下。
nsenter --target 10692 --uts --ipc --net --pid
推出容器: Ctrl +d
查看容器的運行狀態:docker ps
退出後容器不會登出,這種方式生產建議使用:
docker logs id/名稱
Logs 選項大體分爲三個:
-t 顯示容器的日誌信息
-f 顯示容器的日誌信息並帶上時間
--tail 數字參數 顯示容器的全部日誌信息
好比:咱們運行一個centos 的容器 並循環輸出 hello word
以下圖:
查看日誌:docker logs contos2 或者 ocker logs -f contos2 手殘centos
使用命令:docker logs -t contos2 或者 docker logs -ft contos2
使用命令:docker logs --tail 3 contos2 或者 docker logs -t --tail 3 contos2
注:以上命令只是示範可隨意組合使用:
注:docker 理念一個容器運行一個進程,可是保不齊咱們須要對該容器 維護監控等操做。
新建立一個容器:
查看容器的進程數量
新建並查看進程:
docker exec -it -d centos4 /bin/bash
這裏顯示了新的進程信息。
下一篇記錄一下 docker 的網絡。
有不足之處 但願你們指出相互學習,
本文原創:轉載請註明出處 謝謝!