Совместное использование данных между контейнерами
Одним из главных преимуществ томов Docker является возможность совместного использования данных несколькими контейнерами. Создадим второй контейнер, использующий тот же том:
docker run -d --name another_container -v my_data:/app/shared_data ubuntu:latest sleep infinity
Эта команда почти идентична предыдущей, но мы дали контейнеру другое имя и смонтировали том по другому пути внутри контейнера.
Теперь проверим, имеет ли этот новый контейнер доступ к данным, созданным ранее:
docker exec another_container cat /app/shared_data/test.txt
Вы увидите то же самое сообщение «Hello from Docker volume». Это доказывает, что оба контейнера работают с одними и теми же данными.
Добавим еще немного данных из этого нового контейнера:
docker exec another_container sh -c "echo 'Data from another container' >> /app/shared_data/test.txt"
Эта команда добавляет новую строку в файл test.txt.
Теперь, если мы проверим содержимое файла из любого контейнера, мы увидим обе строки:
docker exec my_container cat /app/data/test.txt
В выводе должны появиться и «Hello from Docker volume», и «Data from another container».
Это демонстрирует, как тома Docker могут использоваться для обмена данными между контейнерами, что крайне полезно для многих архитектур приложений.