У меня есть следующий 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](https://i.stack.imgur.com/XqKj3.png)
Удаление строки тома из версии Docker Compose «решает проблему».