簡體   English   中英

在沒有 docker-compose.yml 文件的情況下殺死 docker-compose 容器

[英]Kill docker-compose containers without docker-compose.yml file

我有一些由 docker-compose 提供的 docker 容器,並帶有restart: always標志。 但是我不小心刪除了 docker-compose.yml 文件。

如何刪除這些容器,以便它們不會自動重新啟動?

沒有 compose 文件,docker-compose 無法猜測需要殺死的容器的名稱。 您需要使用 docker 命令手動執行此操作:

docker container ls
docker rm -f <container-name-or-id>

您可以使用docker ps -a列出所有正在運行的容器。 在您可以使用docker stop container-name單獨停止您想要的容器之后,您可以使用docker rm $(docker ps -a -q)刪除和刪除所有停止的容器。

此外,如果您還想刪除 docker 圖像,您可以使用docker images列出現有圖像,然后在docker rmi image-name刪除圖像。

我有一個類似的問題 - 我不想獲取 .yml 文件只是為了刪除容器。 由於 docker-compose 為容器添加標簽,我們可以使用這些標簽來過濾匹配的容器,然后將其刪除。

要刪除docker-compose.yml在 shell(bash 或類似的)中為項目 ProjectName(通常是docker-compose.yml所在文件夾的名稱)創建的所有容器,請執行以下命令:

docker ps --filter 'label=com.docker.compose.project=ProjectName' --format {{.ID}} | xarg -n 1 docker rm --force --volumes

帶有過濾器的docker ps提供容器列表,提供格式以便僅打印容器 ID
xargs -n 1 - 獲取容器 ID 列表並在每個容器上執行目標命令,提供容器 ID 作為目標的參數
docker rm刪除現有的容器
--force - 也停止運行容器(否則不會停止或刪除正在運行的容器)
--volumes - 還刪除與容器關聯的任何匿名卷

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM