У меня есть два контейнера, первый - redis, а второй - мое приложение, которое имеет ссылку на redis-контейнер. Они оба имеют restart policies:Почему контейнер Docker с политикой -link и restart не запущен?
docker run --restart=on-failure:10 --name redis redis
docker run --restart=on-failure:10 --name app --link redis app
Тогда, когда я sudo service docker stop
, а затем запускается sudo service docker start
только Redis контейнер. BTW, если в контейнере приложения нет ссылки, он также запущен.
My Docker version - 1.7.1.
[email protected]:~$ 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
Я пробовал '--restart = always' - тот же результат. – starikovs
Тогда почему мой контейнер приложения запущен, если я удаляю '--link redis'? Я думаю, что если будет ошибка, поведение не будет зависеть от '--link'. – starikovs
Наконец, да, проблема была в контейнерах. Если я использую '--restart = always', то после' sudo service docker stop', а затем 'sudo service docker start', контейнеры запускаются ОК. Но я использую бродягу и после «бродяги», а затем «бродяга», некоторые контейнеры останавливаются, из-за бродячих монтируемых общих папок после запуска службы докеров. Таким образом, контейнеры, которые используют тома, связанные с общей папкой с бродягой, не могут запускаться, потому что на данный момент нет файлов. – starikovs