Docker v1.13 新功能介绍
Docker v1.13发布了,本文将介绍其新功能,并提供两个示例来说明如何使用这些新功能。
新功能
1.重启策略
在Docker v1.13中,您可以使用新的--restart
标志指定容器如何在重启时启动。默认情况下,不指定任何重启策略。这意味着在Docker重启时,容器将保持停止状态。
以下是可用的重启策略:
- no - 不重启容器。这是默认策略。
- always - 总是重启容器。
- on-failure - 只有在退出代码为非零值时才重启容器。
- unless-stopped - 除非显式停止容器,否则总是重启容器。
2.延迟启动
Docker v1.13引入了--health-cmd
和--health-interval
标志,这些标志允许您在Docker启动容器之前设置健康检查。它有助于避免在发生故障时完全启动不良容器。
3.命名管道
Docker v1.13还引入了命名管道,允许您方便地访问容器内的命名管道。只需使用--named-pipes
标志启动容器,并以Windows命名管道格式指定路径即可。
示例1 - 重启策略
让我们首先演示如何使用新的重启策略标志。
步骤1 - 启动一个容器:
docker run -it --name restart_test ubuntu:latest
步骤2 - 给容器添加一个退出脚本:
echo 'echo "Container stopped"' >> /root/.bashrc
步骤3 - 退出容器:
exit
步骤4 - 使用不同的重启策略启动容器:
docker run -it --restart=no restart_test
docker run -it --restart=always restart_test
docker run -it --restart=on-failure:3 restart_test
docker run -it --restart=unless-stopped restart_test
在这个例子中,我们在步骤2中给容器添加了一个退出脚本,当容器停止时会执行。我们使用了四种不同的重启策略来启动该容器,您可以看到基于重启策略的不同行为。
4. 示例2 - 延迟启动
让我们演示如何使用健康检查功能来延迟启动容器。
步骤1 - 创建一个简单的健康检查镜像:
echo 'exit 0' > /healthcheck.sh
chmod +x /healthcheck.sh
docker build -t healthcheck_test - <<EOF
FROM debian:latest
COPY healthcheck.sh /
HEALTHCHECK CMD /healthcheck.sh
EOF
步骤2 - 启动容器:
docker run -it --health-cmd=/healthcheck.sh --health-interval=5s healthcheck_test bash
在这个例子中,我们创建了一个健康检查镜像,它将5秒钟运行一次healthcheck.sh
脚本,来判断容器的运行状况。在步骤2中,我们启动容器,并使用--health-cmd
和--health-interval
标志指定检查和检查间隔。这将延迟容器的启动,直到它被认为是健康的。
结论
Docker v1.13为容器的重启和启动提供了更好的控制,同时也提供了更高级的健康检查功能。我们希望本文提供的示例能够帮助您更快地上手和掌握这些新功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker v1.13 新功能介绍 - Python技术站