docker 容器操作命令
容器操作命令
ps 列出容器
docker ps : 列出容器
語法
docker ps [OPTIONS]
OPTIONS
-a?:顯示所有的容器,包括未運行的。
-f?:根據條件過濾顯示的內容。
--format?:指定返回值的模板文件。
-l?:顯示最近創建的容器。
-n?:列出最近創建的n個容器。
--no-trunc?:不截斷輸出。
-q?:靜默模式,只顯示容器編號。
-s?:顯示總的文件大小。
inspect 獲取容器/鏡像的元數據
docker inspect : 獲取容器/鏡像的元數據。
語法
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS
-f?:指定返回值的模板文件。
-s?:顯示總的文件大小。
--type?:為指定類型返回JSON。
DEMO
#?獲取鏡像mysql:5.6的元信息。 root@VM_0_5_centos:~$?docker?inspect?mysql:5.6 [ ????{ ????????"Id":?"sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec", ????????"RepoTags":?[ ????????????"mysql:5.6" ????????], ????????"RepoDigests":?[], ????????"Parent":?"", ????????"Comment":?"", ????????"Created":?"2016-05-24T04:01:41.168371815Z", ????????"Container":?"e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54", ????????"ContainerConfig":?{ ????????????"Hostname":?"b0cf605c7757", ????????????"Domainname":?"", ????????????"User":?"", ????????????"AttachStdin":?false, ????????????"AttachStdout":?false, ????????????"AttachStderr":?false, ????????????"ExposedPorts":?{ ????????????????"3306/tcp":?{} ????????????}, ...
#?獲取正在運行的容器mymysql的?IP。 root@VM_0_5_centos:~$?docker?inspect?--format='{{range?.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'?mymysql 172.17.0.3
top 查看容器中運行的進程信息
docker top :查看容器中運行的進程信息,支持 ps 命令參數。
語法
docker top [OPTIONS] CONTAINER [ps OPTIONS]
DEMO
#?查看容器mymysql的進程信息 root@VM_0_5_centos:~/mysql$?docker?top?mymysql UID????PID????PPID????C??????STIME???TTY??TIME???????CMD 999????40347??40331???18?????00:58????????00:00:02???mysqld
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不會關閉容器。
demo
#?容器mynginx將訪問日志指到標準輸出,連接到容器查看訪問信息。 root@VM_0_5_centos:~$?docker?attach?--sig-proxy=false?mynginx 192.168.239.1?-?-?[10/Jul/2016:16:54:26?+0000]?"GET?/?HTTP/1.1"?304?0?"-"?"Mozilla/5.0?(Windows?NT?6.1;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/45.0.2454.93?Safari/537.36"?"-"
events 從服務器獲取實時事件
docker events : 從服務器獲取實時事件
語法
docker events [OPTIONS]
OPTIONS
-f :根據條件過濾事件;
--since :從指定的時間戳后顯示所有事件;
--until :流水時間顯示到指定的時間為止;
DEMO
#?顯示docker?2016年7月1日后的所有事件。 root@VM_0_5_centos:~/mysql$?docker?events??--since="1467302400" 2016-07-08T19:44:54.501277677+08:00?network?connect?66f958fd13dc4314ad20034e576d5c5eba72e0849dcc38ad9e8436314a4149d4?(container=b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64,?name=bridge,?type=bridge) 2016-07-08T19:44:54.723876221+08:00?container?start?b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64?(image=nginx:latest,?name=elegant_albattani) 2016-07-08T19:44:54.726110498+08:00?container?resize?b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64?(height=39,?image=nginx:latest,?name=elegant_albattani,?width=167) 2016-07-08T19:46:22.137250899+08:00?container?die?b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64?(exitCode=0,?image=nginx:latest,?name=elegant_albattani) ...
#?顯示docker?鏡像為mysql:5.6?2016年7月1日后的相關事件。 root@VM_0_5_centos:~/mysql$?docker?events?-f?"image"="mysql:5.6"?--since="1467302400"? 2016-07-11T00:38:53.975174837+08:00?container?start?96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:51:17.022572452+08:00?container?kill?96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10?(image=mysql:5.6,?name=mymysql,?signal=9) 2016-07-11T00:51:17.132532080+08:00?container?die?96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10?(exitCode=137,?image=mysql:5.6,?name=mymysql) 2016-07-11T00:51:17.514661357+08:00?container?destroy?96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:57:18.551984549+08:00?container?create?c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:57:18.557405864+08:00?container?attach?c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:57:18.844134112+08:00?container?start?c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:57:19.140141428+08:00?container?die?c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c?(exitCode=1,?image=mysql:5.6,?name=mymysql) 2016-07-11T00:58:05.941019136+08:00?container?destroy?c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:58:07.965128417+08:00?container?create?a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:58:08.188734598+08:00?container?start?a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e?(image=mysql:5.6,?name=mymysql) 2016-07-11T00:58:20.010876777+08:00?container?top?a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e?(image=mysql:5.6,?name=mymysql) 2016-07-11T01:06:01.395365098+08:00?container?top?a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e?(image=mysql:5.6,?name=mymysql)
logs 日志
docker logs : 獲取容器的日志
語法
docker logs [OPTIONS] CONTAINER
OPTIONS
-f?: 跟蹤日志輸出
--since?:顯示某個開始時間的所有日志
-t?: 顯示時間戳
--tail?:僅列出最新N條容器日志
wait 阻塞運行直到容器停止
docker wait : 阻塞運行直到容器停止,然后打印出它的退出代碼。
語法
docker wait [OPTIONS] CONTAINER [CONTAINER...]
demo
docker wait CONTAINER
export
docker export :將文件系統作為一個tar歸檔文件導出到STDOUT。
語法
docker export [OPTIONS] CONTAINER
OPTIONS
-o?:將輸入內容寫到文件。
DEMO
#?將id為a404c6c174a2的容器按日期保存為tar文件。 root@VM_0_5_centos:~$?docker?export?-o?mysql-`date?+%Y%m%d`.tar?a404c6c174a2 root@VM_0_5_centos:~$?ls?mysql-`date?+%Y%m%d`.tar mysql-20160711.tar
port 查看容器的端口映射
docker port :列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公眾的端口。
語法
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
實例
#?查看容器mynginx的端口映射情況。 root@VM_0_5_centos:~$?docker?port?mymysql 3306/tcp?->?0.0.0.0:3306
云計算
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。