接著上一篇,今天說一下Docker 有關容器的常用命令。算是比較詳細了吧。 docker run 命令: 註:此命令作用是使用一個鏡像運行啟動一個容器。 在啟動運行的時候 會檢查docker 中是否包含了該鏡像 如果沒有包含 ,docker 會自動的在 docker 的倉庫中下載你想使用的鏡像。也就 ...
接著上一篇,今天說一下Docker 有關容器的常用命令。算是比較詳細了吧。
docker run 命令:
註:此命令作用是使用一個鏡像運行啟動一個容器。 在啟動運行的時候 會檢查docker 中是否包含了該鏡像 如果沒有包含 ,docker 會自動的在 docker 的倉庫中下載你想使用的鏡像。也就是說有時候咱們可以省略:Doker pull 命令。
Docker run 命令常用的參數
1:--name 【鏡像名】 :
--name 給啟動的容器 起一個名字,如果不使用 –name docker的守護進程會自動給你的容器命名,這裡建議使用此參數,docker進程起的名太難記了
2:-d
如果想啟動一個在後臺運行的容器的時候執行以下命令:可以啟動一個容器並且後臺運行 可以創建一個守護式容器。
可以對比一下名字
3:-t docker 會 分配一個偽終端並綁定到容器的標準輸入上,
4:-i則讓容器的標準輸入保持打開,使用的時候可以兩個結合為
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 的網路。
有不足之處 希望大家指出相互學習,
本文原創:轉載請註明出處 謝謝!