Политика перезапуска контейнера не работает с Docker Compose (работает с Docker CLI) - PullRequest
0 голосов
/ 14 января 2019

У меня есть следующий docker-compose.yml файл:

version: '3.5'
services:
  traefik:
    image: traefik:1.7-alpine
    ports:
      - 8881:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/etc/traefik/traefik.toml
    restart: always

И начните с docker-compose up -d. Если я перезапущу движок Docker, созданный при этом контейнер не будет автоматически перезапущен.

Теперь скажите, что я запускаю контейнер следующим образом:

docker run -d -p 8882:80 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v ./traefik.toml:/etc/traefik/traefik.toml \
    --restart always \
    traefik:1.7-alpine

Это запустится автоматически, если я перезапущу движок Docker.

Что я делаю не так с версией Docker Compose?

EDIT:

Я создал другой тест, используя другое изображение (просто чтобы убедиться, что это не было связано с Traefik), и я считаю, что точно определил проблему с томами:

Докер Состав:

version: '3.5'
services:
  traefik:
    image: containous/whoami
    volumes:
      - ./placeholder.txt:/placeholder.txt
    restart: always

CLI Docker:

docker run -d \
    -v ./placeholder.txt:/placeholder.txt \
    --restart always \
    containous/whoami

И вот разница (inspect) между ними (слева: составить; справа: cli): https://www.diffchecker.com/CC0WV3va

enter image description here enter image description here enter image description here

Удаление строки тома из версии Docker Compose «решает проблему».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...