如何停止,删除和清理Docker
你是新的Docker吗?
然后运行和维护Docker应用程序很容易。
本文介绍如何使用Docker Stop,Docker-Compose Stop和Docker kill停止Docker容器应用程序。
管理复杂的多容器Docker应用程序时,Docker-Compose可以方便。
如果我们在系统上运行了Docker服务或者镜像,则可以通过执行验证
docker ps
即使它们未运行执行,请查看所有容器,如果我们需要将其添加到运行容器中的shell,请运行a-a`
docker attach [container id]
如果Docker Atht Alther永远不会连接,则运行Docker Exec -I -T [容器ID]/bin/bash
1)通过ID停止Docker容器
如果我们需要停止容器,请运行
docker stop [container id]
我们可以通过运行验证它已停止
docker ps -a
在多个Docker环境中,可以通过运行来停止
docker-compose stop
如果我们完成容器并准备删除它,请运行
docker rm [container id]
例子
此示例将下载MySQL镜像,创建MySQL数据库并将其公开到本地计算机以与之交互。
$docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_USER=mysql_user -e MYSQL_PASSWORD=mysql_user1 -e MYSQL_DATABASE=mysql_test -p 3306:3306 -d mysql
- 名称:是给容器的名称
- -e:设置环境变量
- -d:在后台运行容器
- -p:将端口设置为转发到。
如果需要将其添加到运行容器中的shell,请运行
docker attach [container id]
如果Docker Atht Alther永远不会连接,则运行Docker Exec -I -T [容器ID]/bin/bash
如果我们需要停止容器,请运行
docker stop [container id]
我们可以通过运行验证它已停止
docker ps -a
如果我们完成容器并准备删除它,请运行
docker rm [container id]
按名称停止Docker容器
如果我们拥有的信息是镜像名称,也可以停止Docker容器,并且我们希望查找该镜像名称的所有匹配运行容器并停止它们。
这可以通过运行来完成
docker ps -a -q --filter="name=<containerName>"
2)停止Docker守护进程
运行Docker
应用程序时,守护程序将作为默认配置运行。
然而,在生产环境中,系统管理员通常会根据组织的要求配置"Docker"守护程序"以启动和停止。
查看Docker守护程序执行的状态
sudo status docker
然后,我们可以通过使用停止Docker守护程序
sudo stop docker
3)停止多个容器
在本节中,我们将看到如何在系统中停止多个容器。
可能会出现可能需要在服务器重载(overloading),安全漏洞或者良好的旧维护时停止所有运行容器的情况。
停止所有Docker容器非常容易。
最简单的方法将通过运行
docker kill $(docker ps -q)
4)去除容器
一旦停止停机容器,我们可能需要删除Docker镜像。
大多数系统管理员可能会发现非常烦人的一件事是所有未使用的容器和镜像占用宝贵的空间。
如果有一个"docker cleanup"命令"来完成这项工作,它会更容易。
也许可能发生在未来。
删除所有容器
docker rm $(docker ps -a -q)
删除所有Docker镜像
docker rmi $(docker images -q)
删除一个或者多个特定镜像使用使用-a
标志的docker镜像
命令来定位要删除的镜像的ID。
这将向我们展示每个镜像,包括中间镜像图层。
当我们找到要删除的镜像时,我们可以将其ID或者标记传递给"docker rmi":
docker images -a
去掉:
docker rmi image_one image_two
去除悬空的镜像
Docker镜像由多个图层组成。
悬空镜像是与任何标记镜像没有关系的层。
他们不再提供目的并消耗磁盘空间。
它们可以通过添加过滤器标志,"-f"(具有"Laveling = True""(Docker ImageS"命令)的值。
当我们确定要删除它们时,我们可以添加"-Q"标志,然后将其ID传递给"Docker RMI":
docker rmi $(docker images -f dangling=true -q)
根据模式删除镜像
我们可以找到使用"Docker镜像"和"Grep"的组合匹配模式的所有镜像。
一旦我们满意,我们可以使用"AWK"删除它们以将ID传递给"Docker RMI"。
请注意,这些实用程序不由Docker提供,并且不一定在所有系统上提供:
docker images | grep "pattern" | awk '{print }' | xargs docker rm
删除卷
使用"docker volume ls"命令"来查找要删除的卷名称或者名称。
然后,我们可以使用"docker卷RM"命令删除一个或者多个卷:
docker volume rm volume_name volume_name
删除容器和它的卷
如果我们创建了未命名的卷,则可以将其与具有-V
标志的容器同时删除。
请注意,这仅适用于未命名的卷。
成功删除容器时,将显示其ID。
请注意,没有参考删除体积。
如果未命名,则从系统中默默地删除。
如果它被命名,它默默地保持存在。
删除:
docker rm -v container_name