Docker не перезапускает контейнеры при перезагрузке хоста
Суть проблемы: есть docker-compose.yml следующего вида:
services:
cnt1:
<skip>
restart: always
networks:
- servicenet
<skip>
cnt1-zerotier:
image: zerotier/zerotier:1.14.0
<skip>
restart: always
depends_on:
cnt1:
condition: service_started
restart: true
network_mode: service:cnt1
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- NET_ADMIN
networks:
servicenet:
external: true
При перезагрузке хоста наблюдаю следующее - примерно каждый второй раз после окончания загрузки контейнер cnt1-zerotier находится в статусе Exited - code 255. Логи у контейнера пустые. В /var/log/docker.log упоминания контейнера нет. Если перезапустить контейнер вручную или сделать docker-compose down/up всего стэка - всё прекрасно подымается(каждый раз) и работает.
Таких compose-стэков несколько и с ними наблюдается одна и та же описанная проблема. Из общего знаменателя только - использование одним контейнером сети другого.
Что я пробовал:
- менять 'service:cnt1' на 'container:cnt1' (по рекомендациям в этих ваших Интернетах);
- менять 'condition: service_started' на 'condition: service_healthy'
Результат - ничего не поменялось, контейнер при перезапуске хоста по прежнему стартует не всегда.
В данный момент вставлен костыль в cron, который перезапускает контейнер, если он находится в статусе Exited, но хотелось бы разобраться какого черта происходит.
Просьба к коллективному разуму о помощи: может не хватает какого-то параметра и я что-то упустил, читая маны?
Или возможно изначальную задачу надо решать по другому? Сама задача выглядит следующим образом: дать определенному контейнеру(не всему хосту!) доступ в VPN-сеть(в данном случае Zerotier), не пересобирая образ самого контейнера и не запуская в нём дополнительных процессов.