docker compose
Примеры конфигов
Пишутся в формате yaml. По дефолту должны быть названы docker-compose.yml, но можно и по-другому (тогда использовать ключ -f)
github: https://github.com/docker/awesome-compose
Управление
Собрать:
docker-compose build
Остановить:
docker-compose down
ключ --rmi - удалит все, что было связано с билдом
Запустить:
docker-compose up - поднять инфру
docker-compose -f some_config.yml up -d
Или одной командой удалить страрые контейнеры, пересобрать и сбилдить новые:
$ docker compose rm -f && docker compose build && docker compose up
Можно указать несколько конфигов, например:
$ ls -al
docker-compose.prod.yml
docker-compose.mocks.yml
docker-compose.yml
$ docker compose -f docker-compose.yml -f docker-compose.mocks.yml up
При этом, в docker-compose.yml — базовые настройки, а в docker-compose.mocks.yml — настройки, связанные с Mock-окружением.
Например:
# docker-compose.yml
version: '3'
networks:
default:
driver: bridge
enable_ipv6: true
# docker-compose.mocks.yml
version: '3'
services:
my-service:
image: ...
Синтаксис конфига
man: https://docs.docker.com/compose/compose-file/
port mapping (format - "HOST:CONTAINER")
ports:
- "8080:80"
tty — добавляем в services, чтоб контейнер не падал, если у нас нет CMD (нечего запустить если, например образ системы только есть). Пример:
version: '3'
services:
ruby_rails_irb:
build:
context: .
dockerfile: Dockerfile
container_name: rails-irb
restart: always
depends_on:
- db
tty: true
Настройка сетки
version: '3'
services:
myservice:
...
networks:
- my-spring-app-network
networks:
my-spring-app-network:
Настройка логирования
version: '3'
services:
myservice:
...
logging:
driver: "local"
options:
max-size: "10m"
max-file: "3"
Last updated
Was this helpful?