7. Docker Compose – автозапуск контейнеров

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:

 

Leave a Reply

Your email address will not be published. Required fields are marked *