停止并删除 Docker Stack Deploy 启动的容器

简介

Docker 是一个开源的容器化平台,它提供了一种轻量级和可移植的方式来打包、分发和运行应用程序。通过使用 Docker,开发者可以将应用程序及其所有依赖项打包为一个独立的容器,然后在任何支持 Docker 的环境中运行。Docker Stack 是 Docker 提供的一种用于管理分布式应用程序的工具,它可以通过一个配置文件来定义和管理多个容器的集群。

在使用 Docker Stack 部署应用程序时,我们常常会遇到需要停止和删除已经启动的容器的情况。本文将介绍如何停止并删除使用 docker stack deploy -c 命令启动的容器。

Docker Stack Deploy 命令

docker stack deploy -c 命令用于在 Docker Swarm 集群中部署一个 Docker Stack。它会根据指定的配置文件创建并启动容器,并将它们组织成一个服务的集群。在配置文件中,我们可以定义服务的名称、镜像、端口映射等相关信息。

使用 docker stack deploy -c 命令启动容器后,我们可以使用 docker stack ls 命令来查看当前正在运行的 Stack 集群。

$ docker stack deploy -c docker-compose.yml myapp
$ docker stack ls

在我的 docker-compose.yml 文件中,我定义了一个名为 myapp 的 Stack,它包含了一个 Web 服务。下面是 docker-compose.yml 的示例代码:

```yaml
version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - 80:80

以上代码将启动一个名为 web 的服务,使用 nginx:latest 镜像,并将容器的 80 端口映射到主机的 80 端口。

停止并删除 Docker Stack Deploy 启动的容器

要停止和删除使用 docker stack deploy -c 命令启动的容器,我们可以使用 docker stack rm 命令。

$ docker stack rm myapp

以上命令将停止并删除名为 myapp 的 Stack 集群中的所有容器。如果我们只想停止 Stack 集群中的容器,而不删除它们,我们可以使用 docker stack services 命令来列出当前正在运行的服务,并使用 docker service rm 命令来停止指定的服务。

$ docker stack services myapp
$ docker service rm myapp_web

以上命令将停止名为 myapp_web 的服务。如果我们只想停止 Stack 集群中的某个特定容器,而不是整个服务,我们可以使用 docker ps 命令来列出当前正在运行的容器,并使用 docker stop 命令来停止指定的容器。

$ docker ps
$ docker stop CONTAINER_ID

以上命令将停止名为 CONTAINER_ID 的容器。

总结

本文介绍了如何停止并删除使用 docker stack deploy -c 命令启动的容器。我们可以使用 docker stack rm 命令来停止和删除整个 Stack 集群,使用 docker stack services 命令和 docker service rm 命令来停止指定的服务,使用 docker ps 命令和 docker stop 命令来停止指定的容器。

希望本文能够帮助您更好地理解如何停止并删除 Docker Stack Deploy 启动的容器。如果您对 Docker Stack 的更多功能和用法感兴趣,我建议您查阅 Docker 官方文档,以获取更多详细信息。

参考链接

  • [Docker 官方文档](