在现代化的开发环境下,Docker 已经成为了开发者中十分流行的工具。随着应用的不断增长,需要管理大量的 Docker 容器。这时候,Docker Swarm 就可以派上用场了。Docker Swarm 是一个 Docker 原生的集群管理和编排工具,可以帮助开发者快速地创建和管理多个 Docker 容器。本文将指南为大家介绍 Docker Swarm 的使用。
Docker Swarm 的概述
Docker Swarm 是由 Docker 官方提供的集群管理和编排工具,它允许开发者在多个 Docker 容器之间进行负载均衡和自动部署。Docker Swarm 允许用户自动部署应用程序、管理它们的生命周期以及当容器无法运行时,自动停止或重新启动它们。
Docker Swarm 使用一种基于集成 Docker API 的简单方法来管理多个 Docker 主机。它使得创建和管理 Docker 容器的规模从单个计算机扩展到跨多个主机的大型集群。使用 Docker Swarm,开发者可以方便地扩展应用程序,并成功地管理运行的容器。
Docker Swarm 的使用
安装 Docker Swarm
在使用 Docker Swarm 之前,需要首先安装 Docker。Docker 的安装可以参考 官方文档。安装 Docker 后,在命令行输入下面的命令可以快速安装 Docker Swarm:
$ docker swarm init
构建 Docker Swarm 集群
Docker Swarm 集群可以由多个 Docker 主机组成。在 Docker 集群中,有一个主节点和多个工作节点。
- 创建一个 Docker Swarm 主节点
使用下面的命令在主节点上创建一个 Docker Swarm:
$ docker swarm init --advertise-addr <manager-ip>
在这里,manager-ip
是主机 IP 地址,也可以设置为 0.0.0.0
,这样 Docker 就会自动绑定可用的 IP 地址。
- 将 Docker 主机加入集群
使用下面的命令将另一个 Docker 主机加入集群:
$ docker swarm join \ --token <token> \ <manager-ip>:<manager-port>
在这里,token
是在主节点上生成的令牌。可以在主节点上使用以下命令获取令牌:
$ docker swarm join-token <worker/manager>
在这里,worker/manager
可以切换角色(工作节点/主节点)。 manager-ip
和 manager-port
是主节点的地址和端口号。
部署服务
- 创建配置文件
创建一个文件 docker-compose.yml
,填写以下内容:
version: '3' services: web: image: nginx deploy: replicas: 3 ports: - "80:80"
- 部署服务
使用以下命令在集群中部署服务:
$ docker stack deploy -c docker-compose.yml myapp
在这里,myapp
是服务的名称。
查看集群状态
使用下面的命令查看集群状态:
$ docker node ls
在这里,docker node ls
命令可以用来查看所有节点。使用以下命令可以查看服务和所在节点:
$ docker service ls
使用以下命令可以查看服务的详细信息,如任务列表和所在节点:
$ docker service ps <service-name>
扩展服务
使用下面的命令扩展服务:
$ docker service scale <service-name>=<number-of-replicas>
在这里,number-of-replicas
是需要扩展的副本数。
删除服务
使用以下命令删除服务:
$ docker stack rm myapp
在这里,myapp
是要删除的服务名称。
示例代码
以下是一个使用 Docker Swarm 部署 Tomcat 服务器的示例。
- 编写 Tomcat Dockerfile
创建一个文件夹 tomcat
,在其中创建一个 Dockerfile
文件。填写以下内容:
FROM tomcat:latest RUN rm -rf /usr/local/tomcat/webapps/* COPY target/myapp.war /usr/local/tomcat/webapps/ROOT.war CMD ["catalina.sh", "run"]
- 构建镜像并推送至 Docker Hub
$ docker build . -t <username>/tomcat-demo $ docker push <username>/tomcat-demo
在这里,username
是 Docker Hub 用户名。
- 创建
docker-compose.yml
文件
在项目目录下创建 docker-compose.yml
文件,填写以下内容:
version: '3' services: web: image: <username>/tomcat-demo:latest deploy: replicas: 3 ports: - "80:8080"
- 部署服务
使用以下命令部署服务:
$ docker stack deploy -c docker-compose.yml tomcat-demo
总结
Docker Swarm 提供了一种简单而有效的方法,可以轻松地将多个 Docker 容器组织成集群,并实现负载均衡和自动部署。在本指南中,我们详细介绍了 Docker Swarm 的安装和使用,包括如何创建 Docker Swarm 集群、部署服务、扩展服务和删除服务。同时,我们还提供了一个使用 Docker Swarm 部署 Tomcat 服务器的示例。使用 Docker Swarm,可以让开发者更加轻松地管理和运维大规模的 Docker 容器。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a8993b48841e98945091a8