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 分钟前
docker 运行自定义化的服务-后端
运维·docker·容器
弧襪2 小时前
K8S-证书过期更新
云原生·容器·kubernetes
东风微鸣4 小时前
Grafana将弃用AngularJS-我们该如何迁移
docker·云原生·kubernetes·可观察性
亚林瓜子6 小时前
docker compose方式安装ClickHouse数据库
数据库·clickhouse·docker·mac·m1
开发小能手-roy6 小时前
在Ubuntu服务器上安装Docker(支持Ubuntu 20.04/22.04等版本):
linux·ubuntu·docker
细心的莽夫7 小时前
Docker学习笔记
运维·笔记·后端·学习·docker·容器
诗句藏于尽头8 小时前
BT面板docker搭建excalidraw遇到的问题
运维·docker·容器
弧襪8 小时前
解决 Docker Swarm 集群节点故障:从问题剖析到修复实战
docker·容器
laimaxgg12 小时前
Docker命令
linux·运维·服务器·ubuntu·docker
HEX9CF13 小时前
【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书
服务器·nginx·docker