第七讲-Docker 容器操作

  • Post author:
  • Post category:其他

docker top

使用此命令,显示容器中的进程。

典型用法

docker top CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

打印指定容器中的进程

例子

首先使用docker ps查询运行中的容器(ID),然后使用docker top CONTAINER显示指定容器中的进程:

[root@qikegu ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
2084a03f4c46        busybox             “sh”                3 hours ago         Up 3 hours                              distracted_ride
[root@qikegu ~]# docker top 2084a03f4c46
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                6302                6286                0                   13:04               pts/0               00:00:00            sh

docker start/stop/restart

此命令用于启动/停止/重启容器。

典型用法

docker start/stop/restart CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

启动/停止/重启容器。

例子

前面我们运行了一个busybox容器,现在我们让它停止运行,然后使用docker ps检查停止运行是否成功。

[root@qikegu ~]# docker stop 2084a03f4c46
2084a03f4c46
[root@qikegu ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker rm

一个容器即使已经退出,仍然会存在,可以使用docker ps -a命令查看。命令docker rm删除容器。

典型用法

docker rm CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

删除指定容器,输出该容器ID。

例子

使用docker ps -a列出所有容器,包括退出运行的,然后使用docker rm b6f8c654159a删除指定容器,最后docker ps -a确认指定容器是否被删除。

[root@qikegu ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
0f191fd7d469        busybox             “sh”                     5 hours ago         Exited (0) 5 hours ago                          hopeful_lalande
8ae26063af0b        hello-world         “/hello”                 6 hours ago         Exited (0) 6 hours ago                          nostalgic_jepsen
4e80cdf55081        busybox             “sh”                     6 hours ago         Exited (0) 6 hours ago                          heuristic_euler
2190b6af6286        hello-world         “/hello”                 6 hours ago         Exited (0) 6 hours ago                          pensive_ganguly
cd5d988325ff        jenkins             “/bin/tini — /usr/l…”   45 hours ago        Exited (130) 45 hours ago                       awesome_heyrovsky
053eaa5cc8e5        hello-world         “/hello”                 46 hours ago        Exited (0) 46 hours ago                         gifted_booth
b6f8c654159a        2bcb04bdb83f        “/bin/bash”              6 weeks ago         Exited (127) 6 weeks ago                        competent_khorana
[root@qikegu ~]# docker rm b6f8c654159a
b6f8c654159a
[root@qikegu ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
0f191fd7d469        busybox             “sh”                     5 hours ago         Exited (0) 5 hours ago                          hopeful_lalande
8ae26063af0b        hello-world         “/hello”                 6 hours ago         Exited (0) 6 hours ago                          nostalgic_jepsen
4e80cdf55081        busybox             “sh”                     6 hours ago         Exited (0) 6 hours ago                          heuristic_euler
2190b6af6286        hello-world         “/hello”                 6 hours ago         Exited (0) 6 hours ago                          pensive_ganguly
cd5d988325ff        jenkins             “/bin/tini — /usr/l…”   45 hours ago        Exited (130) 45 hours ago                       awesome_heyrovsky
053eaa5cc8e5        hello-world         “/hello”                 46 hours ago        Exited (0) 46 hours ago                         gifted_booth

docker stats

此命令输出容器的运行统计信息。

典型用法

docker stats CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

显示容器的CPU和内存利用率等运行信息。

例子

显示容器运行时的cpu、内存等信息。

[root@qikegu ~]# docker stats e7407526d69c

输出

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
e7407526d69c        vigorous_cohen      0.00%               56KiB / 991.2MiB    0.01%               656B / 0B           0B / 0B             1

docker attach

此命令用于附加到容器中正在运行的进程。

典型用法

docker attach CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

附加到容器中正在运行的进程。

例子

进入到容器(busybox),附加到正在运行的sh进程。Ctrl + P + Q 退出。

[root@qikegu ~]# docker attach e7407526d69c
/ #
/ #

docker pause

此命令用于暂停正在运行的容器。

典型用法

docker pause CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

暂停正在运行的容器,输出该容器ID。

例子

docker pause af82cc24d7cc暂停容器,docker ps -a查看,暂停成功。

[root@qikegu ~]# docker pause af82cc24d7cc
af82cc24d7cc
[root@qikegu ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
af82cc24d7cc        busybox             “sh”                     2 minutes ago       Up About a minute (Paused)                       infallible_jennings

docker unpause

此命令启动暂停的容器。

典型用法

docker unpause CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

启动暂停的容器,输出该容器ID。

例子

docker unpause af82cc24d7cc启动容器,docker ps -a查看,启动成功。

[root@qikegu ~]# docker unpause af82cc24d7cc
af82cc24d7cc
[root@qikegu ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
af82cc24d7cc        busybox             “sh”                     6 minutes ago       Up 6 minutes                                    infallible_jennings

docker kill

杀死正在运行的容器。

典型用法

docker kill CONTAINER 

常用选项

  • CONTAINER – 容器ID,docker ps可以查询

执行结果

杀死正在运行的容器,,输出该容器ID。

例子

杀死正在运行的容器af82cc24d7cc。

[root@qikegu ~]# docker kill af82cc24d7cc
af82cc24d7cc

教程中提到的都是命令典型用法,其他用法,可用docker help command查看,例如:docker help rmi

容器生命周期

下图解释了Docker容器的整个生命周期。

Docker Container Life cycle

  • 最开始,Docker容器将处于创建完成状态。
  • 接下来,当使用Docker run命令启动容器时,Docker容器进入运行状态。
  • docker kill命令用于杀死正在运行的Docker容器。
  • docker pause命令用于暂停正在运行的Docker容器。
  • docker unpause命令用于启动暂停的Docker容器。
  • docker stop命令用于退出正在运行的Docker容器。

版权声明:本文为fygkchina原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。