Technology and experience learned from THE DOCKER BOOK 4

Docker/容器
344
0
0
2022-09-10
标签   Docker

创建守护式容器

除了交互式运行的容器,我们也可以创建长期运行的容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。大多数时候我们都需要以守护式来运行我们的容器。我们这就启动应该守护式容器。

  • 创建长期运行的容器
    docker run --name daemon_dave -d ubuntu /bin/sh -c "while true;do echo hello zhoujiawei; sleep 1; done"

  • 我们在上面的docker run 命令使用了-d参数,因此Docker会将容器放到后台运行。
    我们还在容器要运行的命令里使用了一个while循环,该循环会一直打印hell zhoujiawei,直到容器或其进程停止运行。

Technology and experience learned from THE DOCKER BOOK 4

容器内部在干些什么

  • 获取守护式容器的日志
    docker logs daemon_dave
    docker logs -f daemon_dave 可以一直追踪守护式容器的日志
    docker logs -ft daemon_dave 可以一直追踪守护式容器的日志并加上时间戳
    Technology and experience learned from THE DOCKER BOOK 4

  • 查看守护式容器的进程

docker top daemon_dave

Technology and experience learned from THE DOCKER BOOK 4

停止守护式容器

如果需要停止守护式容器,只需执行docker stop命令
docker stop daemon_dave 也可以使用id来替代容器名称

自动重启容器

如果由于某种错误而导致容器停止运行,还可以通过--Restart 标志 ,该标志会检查容器的退出代码,并决定是否要重启容器,默认的行为是Docker不会重启容器

docker run --restart=always --name daemon_dave -d ubuntu /bin/sh -c "while true;do echo hello zhoujiawei; sleep 1; done"
在代码中,--restart被设置为always。无论容器的退出代码是什么,Docker都会自动重启该容器。标志被设为on-failure时,当容器的退出代码为非0值时才会自动重启。该参数还接收一个可选的重启次数参数
--restart-on-failure:5

深入容器

除了通过docker ps命令获取容器的信息,还可以使用docker inspect来获得更多的容器信息

docker inspect daemon_dave

Technology and experience learned from THE DOCKER BOOK 4
也可以使用-f-format来选定查看结果
docker inspect --format='{{ .State.Running }}' daemon_dave false

Technology and experience learned from THE DOCKER BOOK 4

删除容器

  • 如果容器不在使用 可以使用 docker rm 命令来删除
    docker rm -f 5ae15487622d

Technology and experience learned from THE DOCKER BOOK 4

  • 删除所有容器
    目前没有办法一次删除所有容器,用下面的小技巧可以删除全部容器
    docker rm 'sudo docker ps -a -q' 将’符号替换为`

下一个博文 我们将学习 使用docker镜像和仓库