Docker CMD 在 Docker 文件中启动 Haproxy

Docker CMD to start Haproxy in Dockerfile

这是我的 Dockerfile 中用于 haproxy 的 CMD 命令:

CMD ["/etc/init.d/haproxy"]

现在,当我 运行 图像时,会发生以下情况:

...
Successfully built 2eb6549e0a22
root@server:/# docker run -d -p 80:80 -p 81:81 -p 443:443 -p 1988:1988 --name haproxy -h haproxy user/haproxy
09b510c4df712414d8855d3e0fb27b7e35d5c5c2f0f9b07f7f29c8efdb93e852
root@server:/# docker ps -a
CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS                     PORTS               NAMES
09b510c4df71        user/haproxy   "/etc/init.d/haproxy"   5 seconds ago       Exited (2) 4 seconds ago                       haproxy

如您所见,它立即退出。如何保存它 运行ning?

您的 user/haproxy 是否继承自主 docker 存储库中的 haproxy container?如果是这样,命令 haproxy 应该在 PATH 中,并且它在前台包含 运行 的 -f 标志。

我通常也会指定配置文件,所以我的 CMD 看起来像:

haproxy -d -f /usr/local/etc/haproxy/haproxy.cfg