[英]Docker Container Failing To Start On Boot
我正在运行一个带有启动脚本的EC2实例,该脚本在重启时调用。 此启动脚本在启动容器之前检查docker守护程序是否正在运行,但失败并显示错误: Post http:///var/run/docker.sock/v1.13/containers/create: dial unix /var/run/docker.sock: no such file or directory
启动脚本
# Make sure the docker daemon has started
sudo /usr/sbin/service docker start
# start the container
sudo /usr/bin/docker run -d 91b5261e2dc0
请注意,他在ec2实例上,其中“sudo”不需要输入密码。
Crontab条目:
@reboot /bin/bash /home/ubuntu/start-container.sh 2> /home/ubuntu/cron_errors.log
错误:
start: Job is already running: docker
2014/08/01 09:45:48 Post http:///var/run/docker.sock/v1.13/containers/create: dial unix /var/run/docker.sock: no such file or directory
每当我手动运行启动脚本时,它都能完美地工作,这使得它看起来像环境变量/ PATH问题。 谷歌搜索发现有关未设置DOCKER_HOST的信息,但即使DOCKER_HOST仍未设置,启动脚本也能正常工作。
我需要更改或定义什么以确保容器在启动时正确启动?
版本信息
操作系统:Ubuntu 14.04硬件虚拟化。
Docker版本:
Client version: 1.1.2
Client API version: 1.13
Go version (client): go1.2.1
Git commit (client): d84a070
Server version: 1.1.2
Server API version: 1.13
Go version (server): go1.2.1
Git commit (server): d84a070
uname -a输出
Linux ip-10-76-167-92 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
“解决方案”最终是在调用启动docker守护程序后进入睡眠状态或等待状态。 例如
# Make sure the docker daemon has started
sudo /usr/sbin/service docker start
# Wait for the docker daemon to finish starting
sleep 10
# start the container
sudo /usr/bin/docker run -d 91b5261e2dc0
这似乎是因为Chris McKinnel说:
...如果您查看/etc/init.d/docker,您会看到调用start使用--background选项来启动 - 停止 - 守护进程,这意味着它在返回时仍在执行操作。
为什么不使用&&?
在调用启动docker守护程序之后,我尝试使用&&
对容器的启动进行排队,但是&&
只会在前者成功的情况下运行下一个命令,但并非总是如此(例如,如果docker守护程序已在运行) 。 [ 参考 ]
另一种解决方案可能是使用--restart = always选项手动运行此容器:
docker run --restart=always -d 91b5261e2dc0
docker将在docker启动后运行启动所有此类容器,如果容器将在没有docker stop命令的情况下停止。
在运行容器之前,您可以等待docker socket变为可用:
# Start the docker daemon
sudo /usr/sbin/service docker start
# Wait for docker socket to become available
while [ ! -e /var/run/docker.sock ]; do sleep 1; done
# start the container
sudo /usr/bin/docker run -d 91b5261e2dc0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.