Если вы используете Docker compose, значит, вы уже используете несколько контейнеров. например контейнер базы данных, контейнер приложения и т. д.

На этот раз вы хотите поделиться контейнерами томов. Как это сделать?

Решение очень простое. Просто добавьте поле конфигурации с именем тома в файл конфигурации docker-compose.yml.

Во-первых, предположим, что у вас есть контейнеры nodejs и db в docker-compose.yml. Файл конфигурации выглядит следующим образом:

services:
  nodejs:
    build:
      context: .
    volumes:
      - .:/usr/src/app
    ports:
      - “80:80”
  db:
    build:
      context: ./db
    volumes:
      - .:/var/lib/mysql
    ports:
      - “6630:3306”

В приведенном выше примере вы можете увидеть поле томов для каждой настройки контейнера.

Тем не менее, прямо сейчас не доля объема. Объем существует для каждого контейнера.

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

volumes:
  shared-data:

общие данные - это произвольное имя, вы можете изменить его.

Теперь мы добавили общий том, а затем настроили тома nodejs и контейнер базы данных для использования.

services:
  nodejs:
    build:
      context: .
    volumes:
      - shared-data:/usr/src/app
    ports:
      - “80:80”
  db:
    build:
      context: ./db
    volumes:
      - shared-data:/usr/src/mysql
    ports:
      - “6630:3306”
volumes:
  shared-data:

В разделе сервисов вы можете видеть, что общие данные добавляются в тома, конфигурирующие каждый раздел nodejs и db.

Вы заметили разницу? Это верно. До изменения томов путь контейнера БД был /var/lib/mysql, но теперь это /usr/src/mysql.

При совместном использовании томов у вас должно быть одно и то же имя тома, а также один и тот же путь для каждого контейнера.

Если путь тома контейнера nodejs изменился, как показано ниже:

- shared-data:/test/nodejs

затем следует изменить путь к объему контейнера БД.

- shared-data:/test/mysql

Мы закончили объемную долю каждого контейнера. Вы можете выполнить команду docker compose up, которая запускает два контейнера и приближается к объему, как показано ниже:

docker exec -it container-id bash

И переместите путь к объему, после чего вы можете проверить каталог nodejs, а каталог mysql находится в пути /test.

Присоединяйтесь к FAUN: Сайт💻|Подкаст🎙️|Twitter🐦|Facebook👥 |Instagram📷|Группа Facebook🗣️|Группа Linkedin💬| Slack 📱|Cloud Native Новости📰|Дополнительно.

Если этот пост был полезен, пожалуйста, несколько раз нажмите кнопку аплодисментов 👏 ниже, чтобы выразить свою поддержку автору 👇