nginx docker容器在 Boot 时无法启动

ghhaqwfi  于 2023-01-12  发布在  Nginx
关注(0)|答案(1)|浏览(175)

我有一个nginx Docker容器,它可以从命令行正常运行,但在 Boot 时不重新启动。它是用--restart=on-failure启动的,我知道 * 应该 * 也在引导时启动它(它在我的其他Docker容器上当然也是这样工作的)。

docker run --name nginx  --restart=on-failure --detach --mount type=bind,source=/etc/ssl,target=/etc/ssl,readonly --mount type=bind,source=/etc/pki,target=/etc/pki,readonly --mount type=bind,source=/etc/letsencrypt,target=/etc/letsencrypt,readonly -p 443:443 -d nginx

你知道为什么会出现这种情况吗?或者我如何找出问题所在?docker logs nginx什么也没给我,只是到机器关机结束的日志。这是Centos 8上的日志,如果有必要,nginx配置文件包含:

server {
    listen       443 ssl;
    listen  [::]:443 ssl;
    server_name  myurl.net;

    ssl_certificate        /etc/letsencrypt/live/myurl.net/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/myurl.net/privkey.pem;

    ssl_client_certificate /etc/ssl/certs/my_ca.crt;
    ssl_crl                /etc/ssl/CA/ca.crl;
    ssl_verify_client on;

    location / {
        proxy_pass http://172.17.0.1:8080/;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

...其中location线路位于本地Docker网络上,该网络允许nginx与运行HTTP服务器的另一个Docker容器通信,HTTP服务器最终提供服务(nginx只是在循环中通过SSL执行客户端身份验证)。

dpiehjr4

dpiehjr41#

正如@triplee所指出的,当机器重新启动时,--restart=on-failure * 实际上并没有 * 启动Docker容器,只有在某些情况下,如果所讨论的Docker映像在系统关闭时没有优雅地退出,它才会 * 出现 * 这样做:镜像出现故障,因此Docker将在计算机恢复时重新启动它。
正确的指令是使用--restart=always,以确保Docker映像表现良好,像nginx映像一样优雅地退出,因此不会引发错误。

相关问题