1、容器生命週期管理篇html
1.Docker run 命令mysql
(1)語法nginx
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
(2)OPTIONS說明sql
(3)實例docker
使用docker鏡像nginx:latest之後臺模式啓動一個容器,並將容器命名爲mynginx數據庫
docker run --name mynginx -d nginx:latest
使用鏡像nginx:latest之後臺模式啓動一個容器,並將容器的80端口映射到主機隨機端口apache
docker run -P -d nginx:latest
使用鏡像nginx:latest之後臺模式啓動一個容器,將容器的80端口映射到主機的80端口,主機的目錄/data映射到容器的/databash
docker run -p 80:80 -v /data:/data -d nginx:latest
使用鏡像nginx:latest以交互模式啓動一個容器,在容器內執行/bin/bash命令服務器
$ docker run -it nginx:latest /bin/bash root@b8573233d675:/#
2.Docker start/stop/restart 命令網絡
(1)語法
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]
(2)OPTIONS說明
(3)實例
啓動已被中止的容器myapp
docker start myapp
中止運行中的容器myapp
docker stop myapp
重啓容器myapp
docker restart myapp
3.Docker kill 命令
(1)語法
docker kill [OPTIONS] CONTAINER [CONTAINER...]
(2)OPTIONS說明
(3)實例
殺掉運行中的容器myapp
$ docker kill -s KILL myapp myapp
4.Docker rm 命令
(1)語法
docker rm [OPTIONS] CONTAINER [CONTAINER...]
(2)OPTIONS說明
(3)實例
強制刪除容器app一、app2
docker rm -f app一、app2
移除容器app1對容器app2的鏈接,鏈接名conn
docker rm -l conn
刪除容器app1,並刪除容器掛載的數據卷
docker rm -v app1
刪除全部容器
docker rm $(docker ps -a -q)
5.Docker pause/unpause 命令
(1)語法
docker pause [OPTIONS] CONTAINER [CONTAINER...]
docker unpause [OPTIONS] CONTAINER [CONTAINER...]
(2)OPTIONS說明
(3)實例
暫停數據庫容器db01提供服務
docker pause db01
恢復數據庫容器db01提供服務
docker unpause db01
6.Docker create 命令
(1)語法 ,語法同docker run
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
(2)OPTIONS說明
(3)實例
使用docker鏡像nginx:latest建立一個容器,並將容器命名爲myapp
$ docker create --name myapp nginx:latest 87b95664c2f75b7b69f56d56a9cfc48ceb50a48a9db7652ee4c27e3e2cb1961f
7.Docker exec 命令
(1)語法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
(2)OPTIONS說明
(3)實例
在容器myapp中以交互模式執行容器內/root/abxiao.sh腳本
$ docker exec -it myapp /bin/sh /root/abxiao.sh http://www.aibinxiao.com/
在容器myapp中開啓一個交互模式的終端
$ docker exec -i -t mynginx bash root@b1a0703e41e7:/#
2、容器操做命令篇
1.Docker ps 命令
(1)語法
docker ps [OPTIONS]
(2)OPTIONS說明
(3)實例
列出全部在運行的容器信息
$ docker ps CONTAINER ID IMAGE COMMAND ... PORTS NAMES 09b93464c2f7 nginx:latest "nginx -g 'daemon off" ... 80/tcp, 443/tcp mynginx 96f7f14e99ab mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql
列出最近建立的5個容器信息
$ docker ps -n 5 CONTAINER ID IMAGE COMMAND CREATED 09b93464c2f7 nginx:latest "nginx -g 'daemon off" 2 days ago ... b8573233d675 nginx:latest "/bin/bash" 2 days ago ... b1a0703e41e7 nginx:latest "nginx -g 'daemon off" 2 days ago ... f46fb1dec520 5c6e1090e771 "/bin/sh -c 'set -x \t" 2 days ago ... a63b4a5597de 860c279d2fec "bash" 2 days ago ...
列出全部建立的容器ID
$ docker ps -a -q 09b93464c2f7 b8573233d675 b1a0703e41e7 f46fb1dec520 a63b4a5597de 6a4aa42e947b de7bb36e7968 43a432b73776 664a8ab1a585 ba52eb632bbd ......
2.Docker inspect 命令
(1)語法
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
(2)OPTIONS說明
(3)實例
獲取鏡像mysql:5.6的元信息
$ 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
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql 192.168.1.36
3.Docker top 命令
(1)語法
容器運行時不必定有/bin/bash終端來交互執行top命令,並且容器還不必定有top命令,可使用docker top來實現查看container中正在運行的進程。
docker top [OPTIONS] CONTAINER [ps OPTIONS]
(2)OPTIONS說明
(3)實例
查看容器mymysql的進程信息
$ docker top mymysql UID PID PPID C STIME TTY TIME CMD 999 40347 40331 18 00:58 ? 00:00:02 mysqld
查看全部運行容器的進程信息
for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done
4.Docker attach 命令
(1)語法
要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不會關閉容器。
docker attach [OPTIONS] CONTAINER
(2)OPTIONS說明
(3)實例
容器mynginx將訪問日誌指到標準輸出,鏈接到容器查看訪問信息
$ 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" "-"
5.Docker events 命令
(1)語法
docker events [OPTIONS]
(2)OPTIONS說明
(3)實例
顯示docker 2017年10月1往後的全部事件
$ 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) ...
6.Docker logs 命令
(1)語法
docker logs [OPTIONS] CONTAINER
(2)OPTIONS說明
(3)實例
跟蹤查看容器mynginx的日誌輸出
$ docker logs -f mynginx 192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" 2016/07/10 16:53:33 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.239.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.239.130", referrer: "http://192.168.239.130/" 192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://192.168.239.130/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-" 192.168.239.1 - - [10/Jul/2016:16:53:59 +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" "-" ...
7.Docker wait 命令
(1)語法
docker wait [OPTIONS] CONTAINER [CONTAINER...]
(2)OPTIONS說明
(3)實例
docker wait CONTAINER
8.Docker export 命令
(1)語法
docker export [OPTIONS] CONTAINER
(2)OPTIONS說明
(3)實例
將id爲a404c6c174a2的容器按日期保存爲tar文件
$ docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2 $ ls mysql-`date +%Y%m%d`.tar mysql-20171107.tar
9.Docker port 命令
(1)語法
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
(2)OPTIONS說明
(3)實例
查看容器mynginx的端口映射狀況
$ docker port mymysql 3306/tcp -> 0.0.0.0:3306
3、容器rootfs命令篇
1.Docker commit 命令
(1)語法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
(2)OPTIONS說明
(3)實例
將容器a404c6c174a2 保存爲新的鏡像,並添加提交人信息和說明信息
$ docker commit -a "aibinxiao.com" -m "my apache" a404c6c174a2 mymysql:v1 sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057 $ docker images mymysql:v1 REPOSITORY TAG IMAGE ID CREATED SIZE mymysql v1 37af1236adef 15 seconds ago 329 MB
2.Docker cp 命令
(1)語法
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
(2)OPTIONS說明
(3)實例
將主機/www/aibinxiao目錄拷貝到容器96f7f14e99ab的/www目錄下
docker cp /www/aibinxiao 96f7f14e99ab:/www/
將主機/www/aibinxiao目錄拷貝到容器96f7f14e99ab中,目錄重命名爲www
docker cp /www/aibinxiao 96f7f14e99ab:/www
將容器96f7f14e99ab的/www目錄拷貝到主機的/tmp目錄中
docker cp 96f7f14e99ab:/www /tmp/
3.Docker diff 命令
(1)語法
docker diff [OPTIONS] CONTAINER
(2)OPTIONS說明
(3)實例
查看容器mymysql的文件結構更改
$ docker diff mymysql A /logs A /mysql_data C /run C /run/mysqld A /run/mysqld/mysqld.pid A /run/mysqld/mysqld.sock C /tmp
本文爲原創文章,若是對你有一點點的幫助,別忘了點贊哦!比心!如需轉載,請註明出處,謝謝!