Docker 守护式容器
- 能够长期运行
- 没有交互式会话
- 非常适合运行应用程序和服务
1.以守护形式运行容器:
docker run -i -t IMAGE /bin/bash
运行容器后以Ctrl+P Ctrl+Q 组合键来退出容器,这样容器就会在后台运行
示例:我们先启动一个我们已经创建好的容器
docker start -i docker-1
注意:docker-1 是我们在上篇文章中已经创建好的容器,这里只是把它重新启动
我们用Ctrl+P Ctrl+Q 来退出容器,然后用docker ps 来查看容器,会发现容器在后台运行
2.再次进入正在运行的容器(附加到运行中容器)
docker attach [容器名/ID]
示例:
docker attach docker-1
如果没有反应按下Enter键,然后就会发现我们已经进入了正在后台运行的程序
我们继续使用Ctrl+P Ctrl+Q来退出。
3.启动守护式容器,以run的方式启动
docker run -d 镜像名[COMMAND][ARG]
docker run --name dc1 -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"
这里在容器启动时使用shell脚本来写一个循环,让这个命令能在容器中一直执行下去,使用循环的目的是这个容器在执行命令时能够一直在后台存留而不退出,因为 -d参数实际上只是以后台的形式来运行命令,在命令结束后容器依旧会停止。
我们会看到,docker 会返回给我这个容器的一串ID,我们用 docker ps 会看到容器一直在运行
4.以日志方式查看容器(查看容器日志)
docker logs [-f][-t][--tail] 容器名
-f –follows=true | false 默认为false 一直跟踪日志变化并返回结果
-t –timestamps=true | false 默认为false 是在返回的结果上加上时间戳
–tail=”all” 是选择结尾处多少数量的日志,不指定会返回所有日志
示例:
docker logs dc1
如果不指定,会返回所有日志
docker logs -t dc1
会看到日志后面跟着时间戳
docker logs -f dc1
会一直更新最新的日志
docker logs -t --tail 10 dc1
会显示最新的10条
docker logs -tf --tail 0 dc1
指定为0,显示的一直是最新的日志
5.查看容器运行的进程
docker top 容器名
我们可以使用top命令来查看容器运行的进程
示例:
6.在运行的容器中启动新的进程
docker exec [-d][-i][-t] 容器名[COMMAND][ARG...]
docker exec -i -t dc1 /bin/bash
我们用docker top命令,会发现一个新的/bin/bash已经启动
7.停止守护式容器
docker stop 容器名
docker kill 容器名
stop和kill的区别是stop发送一个信号给容器,等待容器停止,kill会直接停止掉容器