守护式容器:
长期运行
没有交互式回话
适合运行应用程序和服务

以守护形式运行容器

docker run -i-t IMAGE /bin/bash
按ctrl+p ctrl+q 会将交互式容器置于后台运行
[root@host ~]# docker run -t -i ubuntu /bin/bash
root@containerid:/# 
[root@host ~]# 
[root@host ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4727a3e4413c        ubuntu              "/bin/bash"         26 seconds ago      Up 25 seconds                           amazing_yalow

附加到运行中的容器

docker attack 容器名
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4727a3e4413c        ubuntu              "/bin/bash"         2 minutes ago       Up 2 minutes                            amazing_yalow
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker attach 4727a3e4413c
root@4727a3e4413c:/# 
root@4727a3e4413c:/# exit
exit
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@iz2ze20vl8jnph0si0n7jsz ~]# 

使用run命令启动守护式容器

docker run -d 镜像名 [COMMAND] [ARG...]
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker run --name dc1 -d ubuntu /bin/bash -c "while true; do echo hello world;sleep 1;done"
282bc392c684c71e7da62a15976822359fd7a0c7312de705051a006322e112f2
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
282bc392c684        ubuntu              "/bin/bash -c 'while…"   4 seconds ago       Up 3 seconds                            dc1

查看容器运行情况

docker logs [-f] [-t] [--tail] 容器名
-f --follows=true|false 默认false
-t --timestamps=true|false 默认false
--tail="all"
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker logs -t -f --tail 0 dc1
2018-02-17T12:12:12.578243896Z hello world

查看容器内进程

docker top 容器名
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker top dc1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4720                4707                0                   20:09               ?                   00:00:00            /bin/bash -c while true; do echo hello world;sleep 1;done
root                5061                4720                0                   20:13               ?                   00:00:00            sleep 1

在运行中的容器中启动新的进程

docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker exec -t -i dc1 /bin/bash 
root@282bc392c684:/# read escape sequence
[root@iz2ze20vl8jnph0si0n7jsz ~]# docker top dc1
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4720                4707                0                   20:09               ?                   00:00:00            /bin/bash -c while true; do echo hello world;sleep 1;done
root                5285                4707                0                   20:16               ?                   00:00:00            /bin/bash
root                5319                4720                0                   20:17               ?                   00:00:00            sleep 1

停止守护式容器

docker stop 容器名 (发送信号,等待停止)
docker kill 容器名(直接停止)
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐