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 集群中添加更多节点,非常灵活!

相关推荐
duansamve3 小时前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
mengge.cloud5 小时前
prometheus+k8s+弹性伸缩,综合项目
云原生·容器·kubernetes·prometheus
xbzb9 小时前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
那明眸似水10 小时前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
腾飞开源10 小时前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
知已难寻21 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
xbzb1 天前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级
方便面不加香菜1 天前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
江湖有缘1 天前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚1 天前
mall 电商项目完整部署---实战
linux·运维·docker·容器