健康检查:Dockerfile 与 docker-compose.yml
HEALTHCHECK: Dockerfile vs docker-compose.yml
我们正在使用 Docker Compose 文件和 Docker Swarm 部署我们的服务。我想知道将健康检查放在 Docker 文件中是否有任何区别,或者将它放在 docker-compose.yml.
中是否更好
我觉得我已经通读了所有可用的文档,但找不到任何内容。
docker-compose.yml
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8081/ping"]
interval: 30s
timeout: 10s
Docker文件
HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost:8081/ping
将健康检查添加到 Dockerfile,将使健康检查成为镜像的一部分,这样任何人从注册表中拉取镜像时都会默认进行健康检查。
与 运行 的实际 docker 图像相比,合成文件的共享程度通常较低。 dockercompose 健康检查允许 adding/overrriding 对不是创建图像而是从远程注册表中拉取图像的人进行图像健康检查。
更适合拉取的镜像默认没有健康检查的情况。
在您的情况下,由于您正在创建图像,因此将运行状况检查添加到 docker 文件更有意义。
我们正在使用 Docker Compose 文件和 Docker Swarm 部署我们的服务。我想知道将健康检查放在 Docker 文件中是否有任何区别,或者将它放在 docker-compose.yml.
中是否更好我觉得我已经通读了所有可用的文档,但找不到任何内容。
docker-compose.yml
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8081/ping"]
interval: 30s
timeout: 10s
Docker文件
HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost:8081/ping
将健康检查添加到 Dockerfile,将使健康检查成为镜像的一部分,这样任何人从注册表中拉取镜像时都会默认进行健康检查。
与 运行 的实际 docker 图像相比,合成文件的共享程度通常较低。 dockercompose 健康检查允许 adding/overrriding 对不是创建图像而是从远程注册表中拉取图像的人进行图像健康检查。 更适合拉取的镜像默认没有健康检查的情况。
在您的情况下,由于您正在创建图像,因此将运行状况检查添加到 docker 文件更有意义。