docker run from systemd 服务启动但立即退出,然后重新启动,但 docker run from shell 工作正常

docker run from systemd 服务启动但立即退出,然后重新启动,但 docker run from shell 工作正常

在我的 CentOS 7.2 机器上,使用 Docker 1.10.3,我成功测试了以下内容(以 root 身份运行):

docker run --name usljavadoc_server -p 80:80 -p 443:443 -v /opt/app/uslJavadoc/:/var/www/html/ -d eboraas/apache

自动部署的内容/opt/app/uslJavadoc可通过容器中运行的 apache 进行服务。

所以,我的下一步是让它与 systemd 一起工作,所以我 /etc/systemd/system/docker-usljavadoc.service使用以下内容创建:

[Unit]
Description=Apache serving USL Javadoc
Requires=docker.service
After=docker.service

[Service]
TimeoutStartSec=0
Restart=always
ExecStart=/usr/bin/docker run --name usljavadoc_server -p 80:80 -p 443:443 -v /opt/app/uslJavadoc/:/var/www/html/ -d eboraas/apache
ExecStop=/usr/bin/docker stop -t 2 usljavadoc_server
ExecStopPost=/usr/bin/docker rm -f usljavadoc_server

[Install]
WantedBy=default.target

我手动重新加载systemd并启动服务。我验证了另一个机器上的浏览器可以访问 apache 进程并获取正确提供的内容。然后我重新启动以确保它在重新启动后正常工作。仍然工作。

所以,我以为我已经完成了。然而,当我仔细观察时发现,服务成功启动,但启动后立即退出,然后重新启动。这种情况正在持续发生。由于它只是提供纯 html 内容(javadoc 树),并且服务会立即重新启动,因此用户可能甚至没有注意到存在问题,但绝对不应该这样做。

有什么想法为什么这个“docker run”在 shell 中运行良好,并且似乎从 systemd 启动良好,但几秒钟后立即退出?

相关内容