1. 程式人生 > >12、《每天5分鐘玩轉Docker容器技術》學習-Docker命令之容器操作命令

12、《每天5分鐘玩轉Docker容器技術》學習-Docker命令之容器操作命令

hostman cloudman cloud openstack docker

a) Docker ps 命令

docker ps : 列出容器

docker ps [OPTIONS]

-a :顯示所有的容器,包括未運行的。

-f :根據條件過濾顯示的內容。

--format :指定返回值的模板文件。

-l :顯示最近創建的容器。

-n :列出最近創建的n個容器。

--no-trunc :不截斷輸出。

-q :靜默模式,只顯示容器編號。

-s :顯示總的文件大小。

l 實例

列出所有在運行的容器信息。

技術分享圖片

技術分享圖片

列出最近創建的5個容器信息。

技術分享圖片

列出所有創建的容器ID。

技術分享圖片

b) Docker inspect 命令

docker inspect : 獲取容器/鏡像的元數據。

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

-f :指定返回值的模板文件。

-s :顯示總的文件大小。

--type :為指定類型返回JSON。

l 實例

獲取鏡像mysql:5.6的元信息。

技術分享圖片

獲取正在運行的容器mymysql的 IP。

技術分享圖片

c) Docker network

Docker network:對docker網絡的操作

docker network COMMAND

技術分享圖片

1) docker network ls 命令

列出docker中的網絡

docker network ls [OPTIONS]

l 實例

技術分享圖片

2) docker network inspect 命令

查詢docker中網絡的具體信息

docker network inspect [OPTIONS] NETWORK [NETWORK...]

l 實例

技術分享圖片

3) docker network create 命令

docker create:創建一個docker網絡

docker network create [OPTIONS] NETWORK

--attachable Enable manual container attachment

--aux-address map Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])

-d, --driver string Driver to manage the Network (default "bridge")

--gateway stringSlice IPv4 or IPv6 Gateway for the master subnet

--help Print usage

--internal Restrict external access to the network

--ip-range stringSlice Allocate container ip from a sub-range

--ipam-driver string IP Address Management Driver (default "default")

--ipam-opt map Set IPAM driver specific options (default map[])

--ipv6 Enable IPv6 networking

--label list Set metadata on a network (default [])

-o, --opt map Set driver specific options (default map[])

--subnet stringSlice Subnet in CIDR format that represents a network segment

l 實例

docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net2

4) docker network connect 命令

連接一個容器到網絡

docker network connect [OPTIONS] NETWORK CONTAINER

--alias stringSlice Add network-scoped alias for the container

--help Print usage

--ip string IP Address

--ip6 string IPv6 Address

--link list Add link to another container (default [])

--link-local-ip stringSlice Add a link-local address for the container

5) docker network disconnect 命令

將容器斷開指定的網絡

docker network disconnect [OPTIONS] NETWORK CONTAINER

-f, --force Force the container to disconnect from a network

--help Print usage

6) docker network prune 命令

刪除全部的未使用的網絡

docker network prune [OPTIONS]

-f, --force Do not prompt for confirmation

--help Print usage

7) docker network rm 命令

刪除一個或多個網絡

docker network rm NETWORK [NETWORK...]

--help Print usage

d) Docker volume

管理卷

技術分享圖片

1) Docker volume ls 命令

列出系統中使用docker managed volume

docker volume ls [OPTIONS]

-f, --filter filter Provide filter values (e.g. 'dangling=true')

--format string Pretty-print volumes using a Go template

--help Print usage

-q, --quiet Only display volume names

l 實例

技術分享圖片

2) docker volume inspect 命令

顯示卷的詳細信息

docker volume inspect [OPTIONS] VOLUME [VOLUME...]

-f, --format string Format the output using the given Go template

--help Print usage

l 實例

技術分享圖片

3) Docker volume create 命令

創建docker managed volume

docker volume create [OPTIONS] [VOLUME]

-d, --driver string Specify volume driver name (default "local")

--help Print usage

--label list Set metadata for a volume (default [])

-o, --opt map Set driver specific options (default map[])

l 實例

4) Docker volume prune 命令

刪除未使用的docker managed volume

docker volume prune [OPTIONS]

-f, --force Do not prompt for confirmation

--help Print usage

l 實例

5) Docker volume rm 命令

刪除一個或多個docker managed volume

docker volume rm [OPTIONS] VOLUME [VOLUME...]

-f, --force Force the removal of one or more volumes

--help Print usage

l 實例

e) Docker top 命令

docker top :查看容器中運行的進程信息,支持 ps 命令參數。

docker top [OPTIONS] CONTAINER [ps OPTIONS]

容器運行時不一定有/bin/bash終端來交互執行top命令,而且容器還不一定有top命令,可以使用docker top來實現查看container中正在運行的進程。

l 實例

查看容器mymysql的進程信息。

技術分享圖片

查看所有運行容器的進程信息。

技術分享圖片

f) Docker attach 命令

docker attach :連接到正在運行中的容器

docker attach [OPTIONS] CONTAINER

要attach上去的容器必須正在運行,可以同時連接上同一個container來共享屏幕(與screen命令的attach類似)。

官方文檔中說attach後可以通過CTRL-C來detach,但實際上經過我的測試,如果container當前在運行bash,CTRL-C自然是當前行的輸入,沒有退出;如果container當前正在前臺運行進程,如輸出nginx的access.log日誌,CTRL-C不僅會導致退出容器,而且還stop了。這不是我們想要的,detach的意思按理應該是脫離容器終端,但容器依然運行。好在attach是可以帶上--sig-proxy=false來確保CTRL-D或CTRL-C不會關閉容器。

l 實例

容器mynginx將訪問日誌指到標準輸出,連接到容器查看訪問信息。

技術分享圖片

g) Docker events 命令

docker events : 從服務器獲取實時事件

docker events [OPTIONS]

-f :根據條件過濾事件;

--since :從指定的時間戳後顯示所有事件;

--until :流水時間顯示到指定的時間為止;

l 實例

顯示docker 2016年7月1日後的所有事件。

技術分享圖片

顯示docker 鏡像為mysql:5.6 2016年7月1日後的相關事件。

技術分享圖片

h) Docker logs 命令

docker logs : 獲取容器的日誌

docker logs [OPTIONS] CONTAINER

-f : 跟蹤日誌輸出

--since :顯示某個開始時間的所有日誌

-t : 顯示時間戳

--tail :僅列出最新N條容器日誌

l 實例

跟蹤查看容器mynginx的日誌輸出。

技術分享圖片

查看容器mynginx從2016年7月1日後的最新10條日誌

技術分享圖片

i) Docker wait 命令

docker wait : 阻塞運行直到容器停止,然後打印出它的退出代碼。

docker wait [OPTIONS] CONTAINER [CONTAINER...]

l 實例

技術分享圖片

j) Docker export 命令

docker export :將文件系統作為一個tar歸檔文件導出到STDOUT。

docker export [OPTIONS] CONTAINER

-o :將輸入內容寫到文件。

l 實例

將id為a404c6c174a2的容器按日期保存為tar文件。

技術分享圖片

k) Docker port 命令

docker port :列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公眾的端口。

docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]

l 實例

查看容器mynginx的端口映射情況。

技術分享圖片

12、《每天5分鐘玩轉Docker容器技術》學習-Docker命令之容器操作命令