Docker的常用命令


docker命令有很多,總的分為以下幾大類:

容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause] 容器操作運維 — docker [ps|inspect|top|attach|events|logs|wait|export|port] 容器rootfs命令 — docker [commit|cp|diff] 鏡像倉庫 — docker [login|pull|push|search] 本地鏡像管理 — docker [images|rmi|tag|build|history|save|import] 其他命令 — docker [info|version]

以上只是日常中大部分使用的命令,更詳細的可以查看官網或者命令幫助

 

docker --help

Usage: docker [OPTIONS] COMMAND [arg...] docker [ --help | -v | --version ] A self-sufficient runtime for containers. Options: --config=~/.docker Location of client config files -D, --debug Enable debug mode -H, --host=[] Daemon socket(s) to connect to -h, --help Print usage -l, --log-level=info Set the logging level --tls                           Use TLS; implied by --tlsverify --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA --tlscert=~/.docker/cert.pem Path to TLS certificate file --tlskey=~/.docker/key.pem Path to TLS key file --tlsverify Use TLS and verify the remote -v, --version Print version information and quit Commands: attach Attach to a running container build Build an image from a Dockerfile commit Create a new image from a container's changes
    cp        Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes on a container's filesystem
    events    Get real time events from the server exec Run a command in a running container export Export a container's filesystem as a tar archive
 history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information inspect Return low-level information on a container, image or task kill Kill one or more running containers load  Load an image from a tar archive or STDIN login Log in to a Docker registry. logout Log out from a Docker registry. logs Fetch the logs of a container  network Manage Docker networks node Manage Docker Swarm nodes  pause Pause all processes within one or more containers port List port mappings or a specific mapping for the container ps  List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart a container rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save one or more images to a tar archive (streamed to STDOUT by default) search Search the Docker Hub for images service Manage Docker services start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop one or more running containers  swarm Manage Docker Swarm tag Tag an image into a repository top Display the running processes of a container unpause Unpause all processes within one or more containers update Update configuration of one or more containers version Show the Docker version information  volume Manage Docker volumes  wait Block until a container stops, then print its exit code

 

下面是命令的用法和簡單實例:

attach   Attach to a running container #將終端依附到容器上
語法:Usage: docker attach [OPTIONS] CONTAINER
實例:進入my_container容器
[root@localhost ~]# docker attach my_container
[root@d4a75f165ce6 /]#

build Build an image from a Dockerfile #通過Dockerfile創建鏡像
語法:Usage: docker build [OPTIONS] PATH | URL | -
實例:使用當前目錄的Dockerfile創建鏡像。

[root@localhost ~]#docker build -t runoob/ubuntu:v1 .

commit Create a new image from a container's changes #
通過容器創建本地鏡像
語法:Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
實例:創建一個鏡像
[root@localhost ~]# docker commit centos_v1 centos:v1

68ad49c999496cff25fdda58f0521530a143d3884e61bce7ada09bdc22337638

cp Copy files/folders between a container and the local filesystem #在宿主機和容器之間相互拷貝文件
語法:Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
實例:容器mysql中/usr/local/bin/存在docker-entrypoint.sh文件,可如下方式copy到宿主機
[root@localhost ~]#docker cp mysql:/usr/local/bin/docker-entrypoint.sh /root
修改完畢后,將該文件重新copy回容器
[root@localhost ~]# docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/

create Create a new container #僅創建一個容器
語法:Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...] 實例:使用docker鏡像nginx:latest創建一個容器,並將容器命名為myrunoob [root@localhost ~]# docker create  --name myrunoob nginx:latest 09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f

diff Inspect changes on a container's filesystem #查看容器內發生改變的文件
語法:Usage: docker diff CONTAINER 實例:查看容器mymysql的文件結構更改。 [root@localhost ~]#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

events Get real time events from the server #實時輸出docker服務器的事件,包括容器的創建、啟動和關閉等
語法:Usage:    docker events [OPTIONS]
實例:顯示docker 2016年7月1日后的所有事件。
[root@localhost ~]# 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@localhost ~]# 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)
如果指定的時間是到秒級的,需要將時間轉成時間戳。如果時間為日期的話,可以直接使用,如--since="2016-07-01"。

exec Run a command in a running container #對一個啟動的容器執行命令
語法:Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 實例:在容器mynginx中以交互模式執行容器內/root/runoob.sh腳本 [root@localhost ~]# docker exec -it mynginx /bin/sh /root/runoob.sh http://www.runoob.com/

export Export a container's filesystem as a tar archive
#將容器打包,導出為tar文件格式
語法:Usage: docker export [OPTIONS] CONTAINER 實例:將id為a404c6c174a2的容器按日期保存為tar文件。 [root@localhost ~]#docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2 [root@localhost ~]#ls mysql-`date +%Y%m%d`.tar mysql-20160711.tar

history Show the history of an image#顯示鏡像的創建過程
語法: Usage: docker history [OPTIONS] IMAGE 實例: 查看本地鏡像runoob/ubuntu:v3的創建歷史。 [root@localhost ~]# docker history runoob/ubuntu:v3 IMAGE CREATED CREATED BY SIZE COMMENT 4e3b13c8a266 3 months ago      /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B <missing>         3 months ago      /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/ 1.863 kB 
<missing>         3 months ago      /bin/sh -c set -xe   && echo '#!/bin/sh' > /u   701 B <missing>         3 months ago      /bin/sh -c #(nop) ADD file:43cb048516c6b80f22   136.3 MB

images List images #列出本地所有的鏡像
語法:Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
實例:查看本地鏡像列表。
[root@localhost ~]#docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mymysql                 v1                  37af1236adef        5 minutes ago       329 MB runoob/ubuntu           v4                  1c06aa18edee        2 days ago          142.1 MB <none>                  <none>              5c6e1090e771        2 days ago          165.9 MB httpd latest ed38aaffef30 11 days ago         195.1 MB alpine latest 4e38e38c8ce0 2 weeks ago         4.799 MB mongo 3.2                 282fd552add6        3 weeks ago         336.1 MB redis latest 4465e4bcad80 3 weeks ago         185.7 MB php 5.6-fpm             025041cd3aa5        3 weeks ago         456.3 MB python 3.5                 045767ddf24a        3 weeks ago         684.1 MB ...
列出本地鏡像中REPOSITORY為ubuntu的鏡像列表。
[root@localhost ~]# docker images  ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               90d5884b1ee0        9 weeks ago         188 MB ubuntu 15.10               4e3b13c8a266        3 months ago        136.3 MB

import Import the contents from a tarball to create a filesystem image #導入一個鏡像,類型為tar文件
語法:Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] 實例:從鏡像歸檔文件my_ubuntu_v3.tar創建鏡像,命名為runoob/ubuntu:v4 [root@localhost ~]# docker import  my_ubuntu_v3.tar runoob/ubuntu:v4 sha256:63ce4a6d6bc3fabb95dbd6c561404a309b7bdfc4e21c1d59fe9fe4299cbfea39 [root@localhost ~]#docker images runoob/ubuntu:v4 REPOSITORY TAG IMAGE ID CREATED SIZE runoob/ubuntu       v4                  63ce4a6d6bc3        20 seconds ago      142.1 MB

info Display system-wide information #顯示docker的系統信息
語法:Usage: docker images [OPTIONS] [REPOSITORY[:TAG]] 實例:顯示本機docker系統信息 [root@localhost ~]# docker info
Containers: 3    --當前有3個容器 Images: 298 Storage Driver: devicemapper Pool Name: docker-253:0-34402623-pool Pool Blocksize: 65.54 kB Backing Filesystem: xfs Data file: /dev/loop0 Metadata file: /dev/loop1 Data Space Used: 8.677 GB     --對應的是下面Data loop file大小 Data Space Total: 107.4 GB Data Space Available: 5.737 GB Metadata Space Used: 13.4 MB  --對應的是下面Metadata loop file大小 Metadata Space Total: 2.147 GB Metadata Space Available: 2.134 GB Udev Sync Supported: true Deferred Removal Enabled: false Data loop file: /var/lib/docker/devicemapper/devicemapper/data Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata Library Version: 1.02.93-RHEL7 (2015-01-28) Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.10.0-229.el7.x86_64 Operating System: CentOS Linux 7 (Core) CPUs: 2 Total Memory: 979.7 MiB Name: localhost.localdomain ID: TFVB:BXGQ:VVOC:K2DJ:LECE:2HNK:23B2:LEVF:P3IQ:L7D5:NG2V:UKNL WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
 
        

inspect Return low-level information on a container, image or task #
用於查看容器的配置信息,包含容器名、環境變量、運行命令、主機配置、網絡配置和數據卷配置等。
語法:Usage:  docker inspect [OPTIONS] CONTAINER|IMAGE|TASK [CONTAINER|IMAGE|TASK...] 實例:獲取鏡像mysql:5.6的元信息。 
[root@localhost ~]# 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@localhost ~]# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql 172.17.0.3

kill Kill one or more running containers #強制終止容器
語法:Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...] 實例:殺掉運行中的容器mynginx [root@localhost ~]# docker kill -s KILL mynginx mynginx

load Load an image from a tar archive or STDIN #將打包的鏡像導入
語法:Usage: docker load [OPTIONS] 實例:導入一個打包好的的busybox鏡像 [root@localhost ~]#docker load < busybox.tar [root@localhost ~]#docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE busybox latest 769b9341d9377 weeks ago 2.489 MB

login Log in to a Docker registry. #登錄到docker 鏡像倉庫,默認為dockerhub
語法:Usage: docker login [OPTIONS] [SERVER] 實例:登陸到Docker Hub [root@localhost ~]# docker login -u 用戶名 -p 密碼

logout Log out from a Docker registry. #退出登錄
語法:Usage: docker logout [SERVER] 實例:退出docker hub [root@localhost ~]# docker logout Remove login credentials for https://index.docker.io/v1/

logs Fetch the logs of a container #
用於查看容器的日志,它將輸出到標准輸出的數據作為日志輸出到docker logs命令的終端上。常用於后台型容器
語法:Usage:    docker logs [OPTIONS] CONTAINER
實例:跟蹤查看容器mynginx的日志輸出。
[root@localhost ~]#  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" "-" ...
查看容器mynginx從2016年7月1日后的最新10條日志。
[root@localhost ~]# docker logs --since="2016-07-01" --tail=10 mynginx

network Manage Docker networks #管理docker網絡
語法:Usage: docker network COMMAND 實例:用於動態的將容器添加進一個已有網絡/將容器從網絡中移除。
[root@localhost ~]#docker network connect/docker network disconnect 創建docker網卡 [root@localhost ~]#docker network create -d overlay --ip-range=192.168.2.0/24 --gateway=192.168.2.1 --subnet=192.168.2.0/24 multihost2 顯示網卡 [root@localhost ~]#docker network ls 刪除docker網卡 [root@localhost ~]#docker network rm 查看docker網卡的相關詳細信息 [root@localhost ~]#docker network inspect

node Manage Docker Swarm nodes #管理docker swarm節點
語法:Usage:    docker node COMMAND

pause Pause all processes within one or more containers #
暫停容器中所有的進程。
語法:Usage: docker pause CONTAINER [CONTAINER...] 實例:暫停數據庫容器db01提供服務。 [root@localhost ~]#docker pause db01

port List port mappings or a specific mapping for the container #輸出容器與宿主機端口映射的信息
語法:Usage:    docker port CONTAINER [PRIVATE_PORT[/PROTO]] 實例:查看容器mynginx的端口映射情況。 [root@localhost ~]# docker port mymysql 3306/tcp -> 0.0.0.0:3306

ps List containers #列出所有容器,默認只列出當前正在運行的容器,-a參數可以查看所有狀態的容器
語法:Usage:    docker ps [OPTIONS]
實例:列出所有在運行的容器信息。
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                ...  PORTS                    NAMES
09b93464c2f7   nginx:latest   "nginx -g 'daemon off" ...  80/tcp, 443/tcp myrunoob 96f7f14e99ab mysql:5.6      "docker-entrypoint.sh" ...  0.0.0.0:3306->3306/tcp   mymysql
列出最近創建的5個容器信息。
[root@localhost ~]# 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。
[root@localhost ~]# docker ps -a -q 09b93464c2f7 b8573233d675 b1a0703e41e7 f46fb1dec520 a63b4a5597de 6a4aa42e947b de7bb36e7968 43a432b73776 664a8ab1a585 ba52eb632bbd ...

pull Pull an image or a repository from a registry #從倉庫中下載一個鏡像,默認為docker hub上
語法:Usage:    docker pull [OPTIONS] NAME[:TAG|@DIGEST] 實例:從Docker Hub下載java最新版鏡像。 [root@localhost ~]# docker pull java 從Docker Hub下載REPOSITORY為java的所有鏡像。 [root@localhost ~]# docker pull -a java

push Push an image or a repository to a registry #上傳鏡像到倉庫,默認為docker hub上,需要用戶名和密碼
語法:Usage:    docker push [OPTIONS] NAME[:TAG]
實例:上傳本地鏡像myapache:v1到鏡像倉庫中。
要先用docker login登錄上,不然會報以下錯誤
[root@localhost ~]# docker push myapache:v1
The push refers to a repository [docker.io/ivictor/centos] (len: 1) unauthorized: access to the requested resource is not authorized
[root@localhost ~]# docker push myapache:v1

rename Rename a container #更改容器的名稱
語法:Usage:    docker rename CONTAINER NEW_NAME

 

start/stop/restart  #啟動、停止、重啟一個容器

語法:Usage:docker start [OPTIONS] CONTAINER [CONTAINER...] Usage:docker stop [OPTIONS] CONTAINER [CONTAINER...] Usage:docker restart [OPTIONS] CONTAINER [CONTAINER...] 實例:啟動已被停止的容器myrunoob [root@localhost ~]#docker start myrunoob 停止運行中的容器myrunoob [root@localhost ~]#docker stop myrunoob 重啟容器myrunoob [root@localhost ~]#docker restart myrunoob

 

rm   Remove one or more containers #刪除一個或多個容器,默認只能刪除非運行狀態的容器,-f參數可以強制刪除

 

語法:Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...] 實例:強制刪除容器db01、db02 [root@localhost ~]# docker rm -f db01、db02 移除容器nginx01對容器db01的連接,連接名db [root@localhost ~]# docker rm -l db 刪除容器nginx01,並刪除容器掛載的數據卷 [root@localhost ~]# docker rm -v nginx01

 


rmi Remove one or more images #刪除一個或多個鏡像
Usage:    docker rmi [OPTIONS] IMAGE [IMAGE...]

run Run a command in a new container #啟動一個容器,等同於docker create && docker start命令
語法:Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 實例:使用docker鏡像nginx:latest以后台模式啟動一個容器,並將容器命名為mynginx。 [root@localhost ~]# docker run --name mynginx -d nginx:latest 使用鏡像nginx:latest以后台模式啟動一個容器,並將容器的80端口映射到主機隨機端口。 [root@localhost ~]#docker run -P -d nginx:latest
使用鏡像nginx:latest以后台模式啟動一個容器,將容器的80端口映射到主機的80端口,主機的目錄
/data映射到容器的/data。 [root@localhost ~]#docker run -p 80:80 -v /data:/data -d nginx:latest
使用鏡像nginx:latest以交互模式啟動一個容器,在容器內執行
/bin/bash命令。 [root@localhost ~]# docker run -it nginx:latest /bin/bash root@b8573233d675:/#

save Save one or more images to a tar archive (streamed to STDOUT by default) #將指定鏡像保存成 tar 歸檔文件
語法:Usage: docker save [OPTIONS] IMAGE [IMAGE...] 實例:將鏡像runoob/ubuntu:v3 生成my_ubuntu_v3.tar文檔 [root@localhost ~]#  docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3 [root@localhost ~]# ll my_ubuntu_v3.tar -rw------- 1 runoob runoob 142102016 Jul 11 01:37 my_ubuntu_v3.ta

search Search the Docker Hub for images #在docker hub上搜索鏡像
語法:Usage: docker search [OPTIONS] TERM 實例:從Docker Hub查找所有鏡像名包含java,並且收藏數大於10的鏡像 [root@localhost ~]# docker search -s 10 java NAME DESCRIPTION STARS OFFICIAL AUTOMATED java Java is a concurrent, class-based...   1037 [OK] anapsix/alpine-java   Oracle Java 8 (and 7) with GLIBC ...   115 [OK] develar/java                                                 46 [OK] isuper/java-oracle    This repository contains all java...   38 [OK] lwieske/java-8        Oracle Java 8 Container - Full + ...   27 [OK] nimmis/java-centos    This is docker images of CentOS 7...   13                 [OK]

service Manage Docker services #管理docker service。Docker Service是一種聲明式的、可擴展的、負載均衡的應用。Docker Service是面向用戶的應用
語法:Usage: docker service COMMAND 實例:創建一個擁有5個副本的Docker Service [root@localhost ~]# docker service create --name myService -p 8080:8080 --replicas 5 an_image

stats Display a live stream of container(s) resource usage statistics #
動態顯示容器的資源消耗情況,包括:CPU、內存、網絡I/O
語法:Usage: docker stats [OPTIONS] [CONTAINER...] 實例:顯示ID為af93e92b036a的狀態信息 [root@localhost ~]# docker stats af93e92b036a CONTAINER CPU %               MEM USAGE / LIMIT       MEM %               NET I/O               BLOCK I/O PIDS af93e92b036a 0.02%               3.535 MiB / 1.781 GiB   0.19%               44.24 kB / 42.14 kB   17.43 MB / 1.683 MB   6 CONTAINER CPU %               MEM USAGE / LIMIT       MEM %               NET I/O               BLOCK I/O PIDS af93e92b036a 0.02%               3.535 MiB / 1.781 GiB   0.19%               44.24 kB / 42.14 kB   17.43 MB / 1.683 MB   6 CONTAINER CPU %               MEM USAGE / LIMIT       MEM %               NET I/O               BLOCK I/O PIDS af93e92b036a 0.00%               3.535 MiB / 1.781 GiB   0.19%               44.24 kB / 42.14 kB   17.43 MB / 1.683 MB   6

swarm Manage Docker Swarm #管理docker swarm
語法:Usage: docker swarm COMMAND 實例:初始化swarm manager並制定網卡地址 docker swarm init --advertise-addr 192.168.10.117 強制刪除集群,如果是manager,需要加–force docker swarm leave --force docker node rm docker-118 查看swarm worker的連接令牌 docker swarm join-token worker 查看swarm manager的連接令牌 docker swarm join-token manager 使舊令牌無效並生成新令牌 docker swarm join-token --rotate 加入docker swarm集群 docker swarm join --token SWMTKN-1-5d2ipwo8jqdsiesv6ixze20w2toclys76gyu4zdoiaf038voxj-8sbxe79rx5qt14ol14gxxa3wf 192.168.10.117:2377 查看集群中的節點 docker node ls 查看集群中節點信息 docker node inspect docker-117 --pretty 調度程序可以將任務分配給節點 docker node update --availability active docker-118 調度程序不向節點分配新任務,但是現有任務仍然保持運行 docker node update --availability pause docker-118 調度程序不會將新任務分配給節點。調度程序關閉任何現有任務並在可用節點上安排它們 docker node update --availability drain docker-118 添加節點標簽 docker node update --label-add label1 --label-add bar=label2 docker-117 刪除節點標簽 docker node update --label-rm label1 docker-117 將節點升級為manager docker node promote docker-118 將節點降級為worker docker node demote docker-118 查看服務列表 docker service ls 查看服務的具體信息 docker service ps redis 創建一個不定義name,不定義replicas的服務 docker service create nginx 創建一個指定name的服務 docker service create --name my_web nginx 創建一個指定name、run cmd的服務 docker service create --name helloworld alping ping docker.com 創建一個指定name、version、run cmd的服務 docker service create --name helloworld alping:3.6 ping docker.com 創建一個指定name、port、replicas的服務 docker service create --name my_web --replicas 3 -p 80:80 nginx 為指定的服務更新一個端口 docker service update --publish-add 80:80 my_web 為指定的服務刪除一個端口 docker service update --publish-rm 80:80 my_web 將redis:3.0.6更新至redis:3.0.7 docker service update --image redis:3.0.7 redis 配置運行環境,指定工作目錄及環境變量 docker service create --name helloworld --env MYVAR=myvalue --workdir /tmp --user my_user alping ping docker.com 創建一個helloworld的服務 docker service create --name helloworld alpine ping docker.com 更新helloworld服務的運行命令 docker service update --args “ping www.baidu.com” helloworld 刪除一個服務 docker service rm my_web 在每個群組節點上運行web服務 docker service create --name tomcat --mode global --publish mode=host,target=8080,published=8080 tomcat:latest 創建一個overlay網絡 docker network create --driver overlay my_network docker network create --driver overlay --subnet 10.10.10.0/24 --gateway 10.10.10.1 my-network 創建服務並將網絡添加至該服務 docker service create --name test --replicas 3 --network my-network redis 刪除群組網絡 docker service update --network-rm my-network test 更新群組網絡 docker service update --network-add my_network test 創建群組並配置cpu和內存 docker service create --name my_nginx --reserve-cpu 2 --reserve-memory 512m --replicas 3 nginx 更改所分配的cpu和內存 docker service update --reserve-cpu 1 --reserve-memory 256m my_nginx 指定每次更新的容器數量 --update-parallelism 指定容器更新的間隔 --update-delay 定義容器啟動后監控失敗的持續時間 --update-monitor 定義容器失敗的百分比 --update-max-failure-ratio 定義容器啟動失敗之后所執行的動作 --update-failure-action 創建一個服務並運行3個副本,同步延遲10秒,10%任務失敗則暫停 docker service create --name mysql_5_6_36 --replicas 3 --update-delay 10s --update-parallelism 1 --update-monitor 30s --update-failure-action pause --update-max-failure-ratio 0.1 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36 回滾至之前版本 docker service update --rollback mysql 自動回滾 如果服務部署失敗,則每次回滾2個任務,監控20秒,回滾可接受失敗率20% docker service create --name redis --replicas 6 --rollback-parallelism 2 --rollback-monitor 20s --rollback-max-failure-ratio .2 redis:latest 創建服務並將目錄掛在至container中 docker service create --name mysql --publish 3306:3306 --mount type=bind,src=/data/mysql,dst=/var/lib/mysql --replicas 3 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.36 Bind帶來的風險 1、綁定的主機路徑必須存在於每個集群節點上,否則會有問題 2、調度程序可能會在任何時候重新安排運行服務容器,如果目標節點主機變得不健康或無法訪問 3、主機綁定數據不可移植,當你綁定安裝時,不能保證你的應用程序開發方式與生產中的運行方式相同 添加swarm配置 echo "this is a mysql config" | docker config create mysql - 查看配置 docker config ls 查看配置詳細信息 docker config inspect mysql 刪除配置 docker config rm mysql 添加配置 docker service update --config-add mysql mysql 刪除配置 docker service update --config-rm mysql mysql 添加配置 docker config create homepage index.html 啟動容器的同時添加配置 docker service create --name nginx --publish 80:80 --replicas 3 --config src=homepage,target=/usr/share/nginx/html/index.html nginx

tag Tag an image into a repository #標記本地鏡像,將其歸入某一個倉庫
語法:Usage: docker tag IMAGE[:TAG] IMAGE[:TAG] 實例:將鏡像ubuntu:15.10標記為 runoob/ubuntu:v3 鏡像。 [root@localhost ~]# docker tag ubuntu:15.10 runoob/ubuntu:v3 [root@localhost ~]#  docker images   runoob/ubuntu:v3 REPOSITORY TAG IMAGE ID CREATED SIZE runoob/ubuntu       v3                  4e3b13c8a266        3 months ago        136.3 MB

top Display the running processes of a container #查看容器中運行的進程信息,支持 ps 命令參數
語法:Usage: docker top CONTAINER [ps OPTIONS] 實例:查看容器mymysql的進程信息。 [root@localhost ~]# docker top mymysql UID PID PPID C STIME TTY TIME CMD 999    40347  40331   18     00:58   ?    00:00:02 mysqld 查看所有運行容器的進程信息。 [root@localhost ~]#for i in  `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done

unpause Unpause all processes within one or more containers #恢復容器內暫停的進程
語法:Usage: docker unpause CONTAINER [CONTAINER...] 實例:恢復數據庫容器db01提供服務。 [root@localhost ~]#docker unpause db01

update Update configuration of one or more containers #動態的更新一個或多個容器的配置
語法:Usage: docker update CONTAINER [CONTAINER...] 實例:更新一個容器為cpu-shares=512 [root@localhost ~]# docker update --cpu-shares 512 abebf7571666 更新容器的cpu-shares和memory [root@localhost ~]# docker update --cpu-shares 512 -m 300M abebf7571666 hopeful_morse 更新容器restart策略 [root@localhost ~]#docker update --restart=on-failure:3 abebf7571666 hopeful_morse

version Show the Docker version information #顯示docker的版本信息
語法:Usage: docker version [OPTIONS] 實例:顯示本機docker 版本信息 [root@localhost ~]# docker version Client: Version: 1.12.6 API version: 1.24 Package version: docker-1.12.6-61.git85d7426.el7.centos.x86_64 Go version: go1.8.3 Git commit: 85d7426/1.12.6 Built: Tue Oct 24 15:40:21 2017 OS/Arch:         linux/amd64 Server: Version: 1.12.6 API version: 1.24 Package version: docker-1.12.6-61.git85d7426.el7.centos.x86_64 Go version: go1.8.3 Git commit: 85d7426/1.12.6 Built: Tue Oct 24 15:40:21 2017 OS/Arch:         linux/amd64

volume Manage Docker volumes #管理docker數據卷
語法:Usage: docker volume COMMAND 實例:啟動一個Volume_Container容器,包含兩個數據卷 [root@localhost ~]# docker run -v /var/volume1 -v /var/volume2 -name Volume_Container ubuntu14.04 linux_command 創建App_Container容器,掛載Volume_Container容器中的數據卷 [root@localhost ~]# docker run -t -i -rm -volumes-from Volume_Container -name App_Container ubuntu14.04 linux_command 或者再創建一個容器,掛載App_Container中從[root@localhost ~]# Volume_Container掛載的數據卷 docker run -t -i -rm -volumes-from App_Container -name LastApp_Container ubuntu14.04 linux_command

wait Block until a container stops, then print its exit code #
捕捉容器停止時的退出碼,執行此命令后,該命令會“hang”在當前終端,直到容器停止,此時,會打印出容器的退出碼。
語法:Usage:    docker wait CONTAINER [CONTAINER...]

 

 
        
 
        
 


免責聲明!

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



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