1. 程式人生 > 實用技巧 >Docker 常用容器命令

Docker 常用容器命令

一、新建並啟動容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

由於啟動命令太多了,我們就選取幾個常用的進行演示

[OPTIONS] 常用值

--name="容器新名字": 為容器指定一個別名
-d: 後臺執行容器,並返回容器ID,也即啟動守護式容器
-i:以互動模式執行容器,通常與 -t 同時使用
-t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用
-P(大寫 P): 隨機埠對映
-p: 指定埠對映,有以下四種格式
  ip:hostPort:containerPort
  ip::containerPort
  hostPort:containerPort (推薦)


  containerPort

1、啟動 centos 映象

下面兩條命令是等價的

docker run -it --name=mycentos centos:centos7.9.2009
docker run -it --name=mycentos centos:centos7.9.2009 /bin/bash

2、互動模式 / 後臺模式啟動 tomcat

// 互動模式啟動 tomcat
docker run -it --name tomcat01 -p 8088:8080 tomcat:8.5.61-jdk8-corretto

// 後臺模式啟動 tomcat
docker run -d --name=tomcat02 -p 8089:8080 tomcat:8.5.61-jdk8-corretto

啟動資訊如下:

二、列出正在執行的容器

docker ps [OPTIONS]

-a :列出當前所有正在執行的容器 + 歷史上執行過的
-l :顯示最近建立的容器
-n :顯示最近n個建立的容器
-q :靜默模式,只顯示容器編號
-s :顯示容器大小
--no-trunc : 不截斷輸出

三、進入正在啟動的容器

docker exec -it 容器 ID /bin/bash

四、退出容器客戶端

// 方式一、退出容器客戶端,並且關閉容器
exit
// 方式二、退出容器客戶端,不關閉容器
CTRL + P + Q

  

五、啟動容器

當然也可以使用下列命令啟動全部的容器

docker start $(docker ps -aq)

  

六、關閉容器

關閉容器和啟動容器相似,可以關閉一個,也可以關閉多個,也可以批量關閉

當然也可以使用下列命令強制關閉容器

docker kill 容器ID或者容器別名

  

七、刪除已停止容器

八、其它重要命令

1、檢視容器日誌

docker logs -f -t --tail 顯示行數 容器ID

-t: 加入時間戳
-f: 跟隨最新的日誌列印
-n 500: 顯示 500 行

2、檢視容器內的程序

docker top 容器 ID

3、檢視容器內的細節

docker inspect 容器 ID 

以 json 串的形式顯示容器的資訊

4、容器和主機之間檔案互動

從容器中拷貝檔案到主機

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

5、從宿主機拷貝檔案到容器中

docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

九、總結

常用命令總結

// 當前 shell 下 attach 連線指定執行映象
attach    Attach to a running container         
// 通過 Dockerfile 定製映象       
build     Build an image from a Dockerfile 
// 提交當前容器為新的映象             
commit    Create a new image from a container changes   
// 從容器中拷貝指定檔案或者目錄到宿主機中
cp        Copy files/folders from the containers filesystem to the host path   
// 建立一個新的容器,同 run,但不啟動容器
create    Create a new container   
// 檢視 docker 容器變化                     
diff      Inspect changes on a container's filesystem   
// 從 docker 服務獲取容器實時事件
events    Get real time events from the server 
// 在已存在的容器上執行命令         
exec      Run a command in an existing container     
// 匯出容器的內容流作為一個 tar 歸檔檔案[對應 import ]   
export    Stream the contents of a container as a tar archive  
// 展示一個映象形成歷史 
history   Show the history of an image       
// 列出系統當前映象           
images    List images           
// 從tar包中的內容建立一個新的檔案系統映像[對應export]                        
import    Create a new filesystem image from the contents of a tarball 
// 顯示系統相關資訊
info      Display system-wide information 
// 檢視容器詳細資訊              
inspect   Return low-level information on a container  
// kill 指定 docker 容器 
kill      Kill a running container         
// 從一個 tar 包中載入一個映象[對應 save]              
load      Load an image from a tar archive 
// 註冊或者登入一個 docker 源伺服器             
login     Register or Login to the docker registry server   
// 從當前 Docker registry 退出  
logout    Log out from a Docker registry server  
// 輸出當前容器日誌資訊        
logs      Fetch the logs of a container        
// 檢視對映埠對應的容器內部源埠          
port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT     
// 暫停容器
pause     Pause all processes within a container        
// 列出容器列表
ps        List containers     
// 從 docker 映象源伺服器拉取指定映象或者庫映象                          
pull      Pull an image or a repository from the docker registry server   
// 推送指定映象或者庫映象至docker源伺服器
push      Push an image or a repository to the docker registry server   
// 重啟執行的容器 
restart   Restart a running container  
// 移除一個或者多個容器                 
rm        Remove one or more containers      
// 移除一個或多個映象[無容器使用該映象才可刪除,否則需刪除相關容器才可繼續或 -f 強制刪除]           
rmi       Remove one or more images      
// 建立一個新的容器並執行一個命令       
run       Run a command in a new container  
//  儲存一個映象為一個 tar 包[對應 load]            
save      Save an image to a tar archive        
// 在 docker hub 中搜索映象        
search    Search for an image on the Docker Hub   
// 啟動容器      
start     Start a stopped containers    
// 停止容器                
stop      Stop a running containers 
// 給源中映象打標籤                    
tag       Tag an image into a repository     
// 檢視容器中執行的程序資訊           
top       Lookup the running processes of a container 
// 取消暫停容器  
unpause   Unpause a paused container     
// 檢視 docker 版本號               
version   Show the docker version information      
// 擷取容器停止時的退出狀態值     
wait      Block until a container stops, then print its exit code