为什么没有启动带有--link和restart策略的Docker容器?

sta*_*ovs 5 docker

我有两个容器,第一个是redis,第二个是我的app,它有--link to redis容器.他们都有重启政策:

docker run --restart=on-failure:10 --name redis redis 
docker run --restart=on-failure:10 --name app --link redis app 
Run Code Online (Sandbox Code Playgroud)

然后当我sudo service docker stop和然后sudo service docker start只启动redis容器.顺便说一句,如果app容器中没有--link,它也会启动.

我的Docker版本是1.7.1.

vagrant@vagrant-ubuntu-trusty-64:~$ docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64
Run Code Online (Sandbox Code Playgroud)

h3n*_*rik 1

您已经尝试使用了吗--restart:always

我假设您的app容器没有重新启动,因为它在 期间成功结束docker stopredis可能会由于错误而重新启动(您查看了docker logs容器吗redis?)。因此,当您--restart:on-failure:10在这种情况下指定时,它会按设计工作,因为只是redis失败了。

  • 最后,是的,问题出在容器中。如果我使用“--restart=always”,那么在“sudo service docker stop”和“sudo service docker start”之后,容器将正常启动。但我使用的是 vagrant,在“vagrant shutdown”和“vagrant up”之后,一些容器被停止,这是因为 vagrant 在 docker 服务启动后挂载了共享文件夹。因此,使用链接到 vagrant 共享文件夹的卷的容器无法启动,因为目前没有任何文件。 (2认同)