
Если вы используете 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 Новости📰|Дополнительно.
Если этот пост был полезен, пожалуйста, несколько раз нажмите кнопку аплодисментов 👏 ниже, чтобы выразить свою поддержку автору 👇