docker常用命令(不包括run和build)

时间:2022-05-17 14:59:31
docekr 常用命令
1:ls 列出容器
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jdk                 8                   fec5236a803b        48 seconds ago      643MB
nginx               latest              881bd08c0b08        6 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 19:41:10
$ 

2:inspect 查看一个或多个容器详细信息
root@bogon: ~ 19:42:19
$ docker inspect 42d6729d3d02
root@bogon: ~ 20:08:12  #获取正在运行的容器IP
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 025f1f92a6eb
172.17.0.2

3:exec 进入容器可写层(在容器中执行命令)
root@bogon: ~ 19:43:09
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              2 hours ago         Up 2 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 19:43:14
$ docker exec -it 42d6729d3d02 bash 

4:commit 在运行的容器制作成镜像显示在docker image ls中
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              2 hours ago         Up 2 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 19:44:20
$ docker commit -a "hctest" -m "this is test" e125d0e27a24 jdk:8

5:cp 拷贝文件/文件夹到一个容器
root@bogon: ~ 19:46:01
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              2 hours ago         Up 2 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 19:46:04
$ ls
anaconda-ks.cfg  ini.sh  nginx.tar
root@bogon: ~ 19:46:08
$ docker cp /root/nginx.tar 42d6729d3d02:/root
root@bogon: ~ 19:46:35
$ docker exec -it 42d6729d3d02 bash
root@42d6729d3d02:/# cd /root
root@42d6729d3d02:~# ls
nginx.tar
root@42d6729d3d02:~# cd /tmp
root@42d6729d3d02:/tmp# ls
root@42d6729d3d02:/tmp# mkdir cptest
root@42d6729d3d02:/tmp# exit
exit
root@bogon: ~ 19:47:15
$ docker cp 42d6729d3d02:/tmp/cptest /root
root@bogon: ~ 19:47:29
$ ls
anaconda-ks.cfg  cptest  ini.sh  nginx.tar
root@bogon: ~ 19:47:30
$ 

6:logs 获取容器日志
root@bogon: ~ 19:49:07
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              2 hours ago         Up 2 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 19:49:10
$ docker logs -f 025f1f92a6eb
192.168.1.7 - - [11/Mar/2019:11:49:30 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" "-"
2019/03/11 11:49:31 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.1.7, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.1.199", referrer: "http://192.168.1.199/"
192.168.1.7 - - [11/Mar/2019:11:49:31 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.1.199/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" "-"
^C
root@bogon: ~ 19:50:09
$ 
OPTIONS说明:

-f : 跟踪日志输出
docker logs -f 025f1f92a6eb
--since :显示某个开始时间的所有日志
docker logs --since="2019-03-12" --tail=10 025f1f92a6eb
-t : 显示时间戳
docker logs -t 025f1f92a6eb 
--tail :仅列出最新N条容器日志
root@bogon: ~ 19:52:13
$ docker logs --tail  1 025f1f92a6eb
192.168.1.7 - - [11/Mar/2019:11:49:31 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.1.199/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" "-"
root@bogon: ~ 19:52:19
$ 

7 port 列出或者指定容器端口映射
root@bogon: ~ 19:57:59
$ docker port 025f1f92a6eb
80/tcp -> 0.0.0.0:80
root@bogon: ~ 19:58:04
$ 


8: top 显示一个容器运行的进程
root@bogon: ~ 19:58:46
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8f58621ab588        nginx:latest        "nginx -g 'daemon of…"   4 minutes ago       Up 4 minutes        0.0.0.0:8888->80/tcp     test99
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 19:58:48
$ docker top 025f1f92a6eb
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                30271               30255               0                   16:57               pts/0               00:00:00            nginx: master process nginx -g daemon off;
101                 30300               30271               0                   16:57               pts/0               00:00:00            nginx: worker process
root@bogon: ~ 19:58:55
$ 

8:stats 显示容器资源使用统计
$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8f58621ab588        nginx:latest        "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        0.0.0.0:8888->80/tcp     test99
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 19:59:32
$ docker stats 025f1f92a6eb
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
025f1f92a6eb        nginx1.0            0.00%               1.379MiB / 3.701GiB   0.04%               2.5kB / 2.4kB       0B / 0B             2
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
025f1f92a6eb        nginx1.0            0.00%               1.379MiB / 3.701GiB   0.04%               2.5kB / 2.4kB       0B / 0B             2
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
025f1f92a6eb        nginx1.0            0.00%               1.379MiB / 3.701GiB   0.04%               2.5kB / 2.4kB       0B / 0B             2
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
025f1f92a6eb        nginx1.0            0.00%               1.379MiB / 3.701GiB   0.04%               2.5kB / 2.4kB       0B / 0B             2
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
025f1f92a6eb        nginx1.0            0.00%               1.379MiB / 3.701GiB   0.04%               2.5kB / 2.4kB       0B / 0B             2
^C
root@bogon: ~ 19:59:41
$ 


9:stop/start 停止启动一个容器或多个
root@bogon: ~ 20:00:19
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8f58621ab588        nginx:latest        "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        0.0.0.0:8888->80/tcp     test99
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 20:00:20
$ docker stop 42d6729d3d02
42d6729d3d02
root@bogon: ~ 20:00:37
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                    NAMES
8f58621ab588        nginx:latest        "nginx -g 'daemon of…"   6 minutes ago       Up 6 minutes               0.0.0.0:8888->80/tcp     test99
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Exited (0) 3 seconds ago                            nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours                 0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                          test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours                 0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 20:00:41
$ docker start 42d6729d3d02 
42d6729d3d02
root@bogon: ~ 20:00:50
$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8f58621ab588        nginx:latest        "nginx -g 'daemon of…"   6 minutes ago       Up 6 minutes        0.0.0.0:8888->80/tcp     test99
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 3 seconds        80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 20:00:53
$ 

10:rm 删除一个或者多个容器(先停止在删除)
root@bogon: ~ 20:01:17
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8f58621ab588        nginx:latest        "nginx -g 'daemon of…"   6 minutes ago       Up 6 minutes        0.0.0.0:8888->80/tcp     test99
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 29 seconds       80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              3 hours ago         Up 3 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 20:01:19
$ docker rm 8f58621ab588
Error response from daemon: You cannot remove a running container 8f58621ab5880a360ea0714a73f0d700b5a9616b1308f0c681ac1d8af91c8437. Stop the container before attempting removal or force remove
root@bogon: ~ 20:01:24
$ docker stop 8f58621ab588
8f58621ab588
root@bogon: ~ 20:01:28
$ docker rm 8f58621ab588
8f58621ab588
root@bogon: ~ 20:01:32
$ 



11 ps 列出容器

root@bogon: ~ 20:03:37
$ docker ps -a   #列出所有容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 2 minutes        80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              3 hours ago         Up 3 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 20:03:47
$ docker ps -a -q  #只列出容器ID
42d6729d3d02
e125d0e27a24
e2b78fc1b028
025f1f92a6eb
root@bogon: ~ 20:03:53
$ docker ps -n 3   #列出最近创建的3个容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 3 minutes        80/tcp                   nginx01
e125d0e27a24        java:8              "/bin/bash"              3 hours ago         Up 3 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10
root@bogon: ~ 20:04:01
$ docker ps -s    #列出容器显示大小
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES               SIZE
42d6729d3d02        nginx:latest        "nginx -g 'daemon of…"   2 hours ago         Up 3 minutes        80/tcp                   nginx01             113MB (virtual 222MB)
e125d0e27a24        java:8              "/bin/bash"              3 hours ago         Up 3 hours          0.0.0.0:8080->8080/tcp   test11              11B (virtual 643MB)
e2b78fc1b028        java:8              "/bin/bash"              3 hours ago         Up 3 hours                                   test10              79B (virtual 643MB)
025f1f92a6eb        nginx:latest        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0            19B (virtual 109MB)
root@bogon: ~ 20:04:06
$ docker ps --no-trunc   #持续不断输出容器
CONTAINER ID                                                       IMAGE               COMMAND                    CREATED             STATUS              PORTS                    NAMES
42d6729d3d023a649117fba59d2fbd1d9212c3d6d0ce5bbe16c90aa845239574   nginx:latest        "nginx -g 'daemon off;'"   2 hours ago         Up 3 minutes        80/tcp                   nginx01
e125d0e27a24040cc89f9e71d52ab6a3c1b22a5c35cf17a5e94de3ce25c84100   java:8              "/bin/bash"                3 hours ago         Up 3 hours          0.0.0.0:8080->8080/tcp   test11
e2b78fc1b02881626a0eb40f138eee28f5d0de3f2471b29c2ef8be7eff3d964c   java:8              "/bin/bash"                3 hours ago         Up 3 hours                                   test10
025f1f92a6eb887f59d37813b0e251c524b47c645a33a13f72c31b6e082c467b   nginx:latest        "nginx -g 'daemon off;'"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       nginx1.0
root@bogon: ~ 20:04:25
$ 



12:export 将文件系统作为一个tar文档文件导出到stdout
root@bogon: ~ 20:19:45
$ docker export -o nginx-`date +%Y%m%d`.tar 025f1f92a6eb
root@bogon: ~ 20:20:16
$ ls -lh
总用量 214M
-rw-------. 1 root root 1.4K 3月  11 14:59 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 3月  11 19:47 cptest
-rwxr-xr-x. 1 root root 1.8K 3月  11 15:35 ini.sh
-rw-------. 1 root root 107M 3月  11 20:20 nginx-20190311.tar
-rw-r--r--. 1 root root 108M 3月  11 16:53 nginx.tar
root@bogon: ~ 20:20:17
$ 


13 images 列出本地镜像
选项说明:

-a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

--digests:显示镜像的摘要信息;

-f:显示满足条件的镜像;

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

--no-trunc:显示完整的镜像信息;

-q:只显示镜像ID。

root@bogon: ~ 20:22:33  #列出镜像摘要信息DIGEST
$ docker images --digests 
REPOSITORY          TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
jdk                 8                   <none>                                                                    fec5236a803b        42 minutes ago      643MB
nginx               latest              <none>                                                                    881bd08c0b08        6 days ago          109MB
centos              7                   sha256:365fc7f33107869dfcf2b3ba220ce0aa42e16d3f8e8b3c21d72af1ee622f0cf0   1e1148e4cc2c        3 months ago        202MB
java                8                   sha256:34959eed5df6bfe74a17fbf459ed29505d51a48d5cb4a39f215b613c65b8023b   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 20:22:35
$ 

root@bogon: ~ 20:23:54  #只显示镜像ID
$ docker images -q
fec5236a803b
881bd08c0b08
1e1148e4cc2c
d23bdf5b1b1b
root@bogon: ~ 20:23:59
$ 

14: rmi 删除镜像
root@bogon: ~ 20:24:51
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jdk                 8                   fec5236a803b        44 minutes ago      643MB
nginx               latest              881bd08c0b08        6 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 20:24:52
$ docker rmi -f jdk:8
Untagged: jdk:8
Deleted: sha256:fec5236a803b351e50de689fb30ad95b76149fdf7e19b885f503ed4c0e46bcbf
Deleted: sha256:2f4402558d7c5639be8e9a6b1ab96659801b23e96de81c251b744bcd1ceb770e
root@bogon: ~ 20:25:06
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              881bd08c0b08        6 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 20:25:09
$ 


15:tag 标记本地金香,将其归入仓库

$ docker tag nginx:latest hctest/nginx:latest
root@bogon: ~ 20:27:02
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hctest/nginx        latest              881bd08c0b08        6 days ago          109MB
nginx               latest              881bd08c0b08        6 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 20:27:04
$ 


16:save && load 将镜像打包和重新导入

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hctest/nginx        latest              881bd08c0b08        6 days ago          109MB
nginx               latest              881bd08c0b08        6 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 20:29:48
$ docker save nginx:latest >hc_nginx.tar
root@bogon: ~ 20:30:20
$ docker rmi -f nginx:latest
Untagged: nginx:latest
root@bogon: ~ 20:30:26
$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hctest/nginx        latest              881bd08c0b08        6 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 20:30:29
$ docker load <hc_nginx.tar 
Loaded image: nginx:latest
root@bogon: ~ 20:30:37
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hctest/nginx        latest              881bd08c0b08        6 days ago          109MB
nginx               latest              881bd08c0b08        6 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 20:30:39
$