Есть ли способ остановить одну службу docker и удалить назначенные ей тома? - PullRequest
0 голосов
/ 28 мая 2020

Мне было интересно (но поиск, похоже, показывает иное), существует ли команда docker, чтобы остановить одиночную службу и удалить назначенные ей тома. Эквивалент бега: 1 - docker-compose stop <service name> 2 - docker volume rm <volumes_attached_to_service>

Я не против, если он удалит изображение для сервиса.

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Ответ:

На основе вашего комментария:

Я хочу остановить одну службу docker и удалить назначенные ей тома.

Эта команда должна помочь:

docker-compose rm -f -s -v <service>

или

docker-compose rm -fsv <service>

Где, -f принудительно и не запрашивает подтверждения, -s обеспечит остановку контейнера перед удалением это, а -v удалит тома, подключенные к службе.

0 голосов
/ 28 мая 2020

Если контейнер остановлен, но все еще существует, нет. Перед удалением указанного тома необходимо удалить весь контейнер, использующий том. Даже использование docker volume rm --force не поможет.

Я не смог найти конкретное c упоминание в do c, но эта проблема обсуждает отсутствие do c, относящееся к теме, и некоторые обходные пути.

Однако вы можете остановить И удалить контейнер со связанными с ним томами в определенных ситуациях:

  • docker-compose down --volumes, когда все тома будут удалены, перечислены в docker-compose.yml используемых файлах
  • При использовании анонимных томов запуск контейнера с docker run --rm или docker-compose run --rm приведет к тому, что контейнер и присоединенные анонимные тома будут удаляться при остановке контейнера

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

...