docker(3)容器管理命令


接着上一篇,今天說一下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 的網絡。

有不足之處 希望大家指出相互學習,

            本文原創:轉載請注明出處 謝謝!

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM