docker swarm单点模式如何使用

Docker Swarm 单点模式 下,集群只运行在一个节点上。这种方式非常适合测试 Swarm 的功能或者部署小型应用,而不需要配置多个节点的集群。以下是单点模式使用的详细步骤:


1. 初始化 Swarm 模式

在当前 Docker 主机上初始化 Swarm:

bash 复制代码
docker swarm init
输出示例:
bash 复制代码
Swarm initialized: current node (xxxxxx) is now a manager.

执行这条命令后,当前节点将成为 Swarm 管理节点(Manager),可以运行服务和管理 Swarm 集群。


2. 部署一个服务

在 Swarm 单点模式下,部署服务和在多节点模式下类似:

bash 复制代码
docker service create \
  --name my_service \
  --replicas 3 \
  -p 8080:80 \
  nginx
参数说明:
  • --name my_service:指定服务的名称。
  • --replicas 3:启动 3 个副本(所有副本都会运行在这个单点节点上)。
  • -p 8080:80:将宿主机的 8080 端口映射到容器的 80 端口。
  • nginx:服务使用的镜像。

3. 查看服务状态

运行以下命令查看服务状态:

bash 复制代码
docker service ls
输出示例:
plaintext 复制代码
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
xxxxxx              my_service          replicated          3/3                 nginx               *:8080->80/tcp

查看服务的详细信息:

bash 复制代码
docker service ps my_service
输出示例:
plaintext 复制代码
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE
xxxxxx              my_service.1        nginx               manager-node        Running             Running x seconds
xxxxxx              my_service.2        nginx               manager-node        Running             Running x seconds
xxxxxx              my_service.3        nginx               manager-node        Running             Running x seconds

4. 管理服务副本

如果需要调整服务的副本数量,可以使用以下命令:

增加副本
bash 复制代码
docker service scale my_service=5
减少副本
bash 复制代码
docker service scale my_service=2

再次查看服务状态,确保副本数量已调整。


5. 删除服务

如果需要停止并删除服务,可以运行:

bash 复制代码
docker service rm my_service

6. 使用 Swarm Stack 部署(单点 Compose 集成)

你还可以使用 docker stack deploy 配合 docker-compose.yml 文件,在 Swarm 单点模式下快速部署多服务应用。

示例 docker-compose.yml 文件
yaml 复制代码
version: '3.9'

services:
  web:
    image: nginx
    ports:
      - "8080:80"
    deploy:
      replicas: 3
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    deploy:
      replicas: 1
部署命令:
bash 复制代码
docker stack deploy -c docker-compose.yml my_stack
查看 Stack 状态:
bash 复制代码
docker stack services my_stack

7. 管理单点模式的持久化存储

在 Swarm 单点模式下,为了保证服务数据的持久化,可以使用 volumes 来挂载宿主机路径或使用 docker volume 创建持久化存储。

创建卷
bash 复制代码
docker volume create my_volume
在服务中使用卷
bash 复制代码
docker service create \
  --name my_service \
  --replicas 3 \
  --mount type=volume,source=my_volume,target=/app/data \
  nginx

8. 关闭 Swarm 单点模式

如果不再需要 Swarm 模式,可以运行以下命令退出 Swarm 模式:

bash 复制代码
docker swarm leave --force

总结

Docker Swarm 单点模式是一种快速尝试 Swarm 特性或部署小型服务的方式。以下是常用场景:

  1. 快速测试:验证 Swarm 配置、服务调度和伸缩功能。
  2. 小型应用部署:无需多节点集群,单点模式足够支撑轻量级的生产服务。

核心命令包括:

  • 初始化 Swarm:docker swarm init
  • 部署服务:docker service create
  • 扩展服务:docker service scale
  • 使用 Stack:docker stack deploy

如果以后需要扩展,可以在现有 Swarm 集群中添加更多节点,非常灵活!

相关推荐
闲云自留地9 分钟前
Containerd 进阶教程:命名空间 Namespace、私有仓库 Harbor、容器管理全流程
容器
一直在努力学习的菜鸟1 小时前
Docker 完整知识体系图
docker
闲云自留地3 小时前
Containerd 是什么?架构、插件与安装实践一次讲清
容器
java_logo4 小时前
Docker 部署 Gotenberg 完整教程:Compose 搭建文档转 PDF API
docker·pdf·chromium·libreoffice·文档转换·轩辕镜像·gotenberg
闲云野鹤在人间5 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
Experience-摆渡5 小时前
开源RAG知识库WeKnora深度调研:让知识自己长成体系
爬虫·docker·开源·rag
闲云野鹤在人间5 小时前
docker 入门 | 第5章 网络详解
网络·docker·架构·华为云·php
闲云自留地6 小时前
告别敲命令!DockerUI 与 Portainer 可视化容器管理实战
docker·容器
wdfk_prog6 小时前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros
cnkeysky8 小时前
docker 运行 nacos
docker·nacos