Какой была бы жизнь разработчиков без Docker? Вероятно, мы все возились бы с установкой зависимостей друг на друга, рвали на себе волосы и сеяли хаос. Мир разработки программного обеспечения был бы совершенно другим без Docker. Вот почему важно знать основы не только Docker, но и одного из его самых полезных модулей: Compose.

Docker Compose — это способ собрать и запустить множество различных элементов Docker вместе как одну целостную систему. Вы можете определить контейнеры, сети и тома в едином файле Compose. Это позволяет легко запускать все сразу, не запоминая кучу разных команд.

Docker Compose раньше был отдельной автономной программой, но недавно был добавлен в Docker. Теперь вам даже не нужно ничего устанавливать, чтобы начать использовать Compose.

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

Укажите контекст сборки и аргументы

Использование Compose отлично подходит для запуска готовых образов из реестра, но как насчет локальных сборок? Когда вам нужно запустить некоторые сборки из локального Dockerfile, Compose может легко это сделать.

Давайте посмотрим, как настроить контейнер для сборки из локального файла Dockerfile в другом контексте:

version: '3.5'
services:  
  my_container:
    container_name: my_container
    build:
      dockerfile: Dockerfile-name-here
      context: ../foo
      args:
        arg_one: 1

Это говорит Docker сделать несколько полезных вещей:

  • Запустите новый контейнер с именем: my_container.
  • Создайте образ из файла Dockerfile с именем: Dockerfile-name-here на один каталог выше текущего в папке с именем foo.
  • Передайте один аргумент процессу сборки.

Это здорово, потому что это означает, что мы можем полностью контролировать процесс сборки нашего образа, а также создание контейнера. Один файл с одной командой для создания множества разных изображений.

Если Dockerfile, который вы создаете, требует каких-либо учетных данных GitHub или SSH, теперь вы можете передать свой агент SSH, используя флаг контекста ssh. Смотрите здесь для…