Рубрики
Uncategorized

Добавить новые объемы в бегущий контейнер в докере.

Последовательность шагов для добавления новых объемов в контейнер. Tagged с Docker, DevOps, Tips.

Рассмотрим ситуацию, когда у вас есть набор услуг, работающих вместе с Docker-Compose. Теперь, для одной из ваших услуг, вы хотите, чтобы один каталог услуг был экспортирован и синхронизирован с хостом. С другой стороны, вы хотите иметь объем для этого каталога. (например, загрузки, загрузки).

В этом посте показано, как добавить объем в работающий контейнер, не позволяя другим службам сети снизиться.

Шаги

1. Копировать содержимое каталога из контейнера 2 Создайте новое изображение из работающего контейнера (Commit) 3. Остановите и удалите работающий контейнер 4 Создайте контейнер с изображения и укажите громкость и сеть

Шаг 1 — Копировать

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

Перечислите контейнеры и скопируйте id бегового контейнера.

docker ps 

Скопируйте содержимое каталога из контейнера, в котором будет установлен объем.

docker cp : $(pwd)

Шаг 2 — Создайте новое изображение

Этот шаг создаст изображение из работающего контейнера. Таким образом, состояние работы обслуживания сохраняется.

docker commit  

Шаг 3 — Удалить контейнер

Удалите работающий контейнер, поэтому новый контейнер с добавленным объемом займет это место.

docker stop  && docker rm 

Шаг 4 — Создайте новый контейнер

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

Прежде чем продолжить, одна важная вещь, которую нужно заметить, это то, что наши услуги работают вместе с Docker-Compose Анкет Они могут общаться друг с другом через сеть, созданную Docker-Compose Анкет Теперь, если мы создадим и запустим новый контейнер. Этот контейнер не сможет получить доступ к другим службам, поскольку новый контейнер не является частью сети. Таким образом, при создании нового контейнера мы должны добавить этот контейнер в существующем Docker-Compose сеть.

1. Перечислите список сетей Docker-Compose и копируйте сеть имени сети В нем будет перечислено все сети, список будет включать в себя некоторые сети по умолчанию, а также ваш сервис. Узнайте соответствующую сеть и копируйте имя сети.

docker network ls

Получите более подробную информацию о сети, запустив Docker осмотреть network_id

2. Создайте новый контейнер и запустите в существующей сети

docker run -d \
        -v : \
        --network= \
        image-name

скопированная ректорация — Путь к каталогу, скопированный в Шаг 1 сетевая имени — Имя сети, идентифицированное в Шаг 4.1 Изображение имен — Имя изображения, созданное в шаг 2

Сделанный. Новый сервис вступит в Docker-Compose сеть с новым томом.

Оригинал: «https://dev.to/mehulcs/add-new-volumes-to-a-running-container-in-docker-compose-nhh»