Docker Compose – автозапуск контейнеров
Docker Compose
По сути это система с файлом скрипта для запуска контейнеров
пишется на языке yaml
установка docker compose
https://docs.docker.com/compose/install/linux/
В случае с docker compose действуют как обычные команды для контейнеров, так и специальные для docker compose.
проверка версии
docker-compose – -version //для старых версий
или
docker compose – -version //для новых версий
или
docker compose version //для самых новых версий
запуск контейнеров
в директории с docker-compose.yml
docker compose up
в консоли увидим лог запуска контейнеров
запуск контейнеров в фоне
в директории с docker-compose.yml
docker compose up -d
просмотр логов (для контейнера в фоновом режиме)
в директории с docker-compose.yml
docker compose logs -f
выход из логов (ctrl +c ) не завершает работу контейнеров
остановка контейнеров
в директории с docker-compose.yml
docker compose stop
структура файла docker-compose.yml относительно проста, а команда нативны и аналогичны таким же консолшьным командам, в листинге ниже представлен docker-compose файл с наиболее используемыми командами.
инструкции группируются за счет пробелов (2-а пробела) для разделения инструкций
Лучше пример ниже переписать руками (на CMS могут быть ошибки)
version ‘3.5’
services:
myApp1:
image: ubuntu:22.04
container_name: myApp1
volumes:
- ‘/var/apps:/var/custom/dir1’
- ‘/var/apps:/var/custom/dir2’
environment:
- ‘AUTHOR=Admin’
- ‘Version=1.0-dev’
depends_on:
- myApp2
networks:
- internet
- appnet
ports:
- ‘80:80’
- ‘443/tcp:443/tcp’
restart: unless_stopped
myApp2:
image: alpine
container_name: myApp2
command: /bin/bash/script.sh
volumes:
- ‘/var/apps:/var/custom/dir3’
environment:
- ‘AUTHOR=Admin’
depends_on:
- myApp3
networks:
- appnet
ports:
- ‘80:80’
restart: unless_stopped
…….
networks:
internet:
name: internet
driver: bridge
appnet:
name: appnet
driver: bridge
также отдельно могут указываться внешние (named) хранилища/volumes
volumes:
db:
myvars:
