问题描述
由于我将WordPress网站托管在Docker容器中,并且我希望这些容器始终在引导时启动,因此需要手动完成。
最佳方案
在现有容器上添加重新启动策略是非常常见的用例。
可以使用以下命令完成此操作:docker update --restart {no,on-failure,unless-stopped,always} container_name
详细信息:Docker – Start containers automatically
次佳方案
到现在为止,我认为没有办法正常地做到这一点。一个棘手的解决方案是使用restart policy
sudo docker run --restart=always -d your_image
这意味着,每当您关闭它时,它将退出您的容器,以便在启动主机时导致重启docker。
第三种方案
由于ubuntu 15现在支持systemd,因此该管理器的示例:
someservicename.service
[Unit]
Description=Some service
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a container_name
ExecStop=/usr/bin/docker stop -t 2 container_name
[Install]
WantedBy=multi-user.target
有关docker site的更多信息
附言相当可爱的配置:)
第四种方案
我所做的是使用Upstart文件。
您可以在the Docker website中找到一些示例和其他解决方案。
在/etc /init中创建一个类似的文件:
Description "My container"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
/usr/bin/docker start -a mycontainer
end script
pre-stop script
/usr/bin/docker stop mycontainer
end script
请注意,从Docker 1.2开始,有restart policies可能还有助于在运行docker服务时自动重启容器(例如,启动后)。
个性而言,我使用use来配置我的工作站,并使用此Docker module自动创建更完整的startup scripts(启动,停止,重新启动,清洁选项…)