使用 docker service 命令来管理 Swarm 集群中的服务,该命令只能在管理节点上执行。

新建服务

docker service create --replicas 3 -p 80:80 --name nginx nginx:latest

解释一下这条命令:

--replicas 3 : 任务数量

-p 80:80 :配置节点与容器端口映射

--name nginx :服务名称

nginx:latest: 镜像名与版本, 与启动容器一致

查看服务

查看当前 Swarm 集群运行的服务: docker service ls

查看单个服务详情: docker service ps 服务名

查看单个服务日志: docker service logs 服务名

删除服务

docker service rm 服务名

在 Swarm 集群中使用 compose 文件

docker-compose.yml 文件不仅仅可以用来编排,启动一组容器,也同样可以用来在 Swarm 集群中编排,启动多个服务。

例子:(注释很详细)

version: "3"

services:
wordpress: # 声明 wordpress 服务
image: wordpress # 基于 wordpress 镜像
ports: # 配置服务与节点之间的端口映射
- 80:80
networks: # 设置使用的网络
- overlay
environment: # 设置环境变量
WORDPRESS_DB_HOST: db:3306 # 设置 wordpress 使用的数据库地址
WORDPRESS_DB_USER: wordpress # 设置 wordpress 数据库访问用户
WORDPRESS_DB_PASSWORD: wordpress # 设置 wordpress 数据库访问密码
deploy: # 设置服务发布模式
mode: replicated # 每个工作节点都会运行3个服务
replicas: 3 # 设置 3 个分片
db:
image: mysql
networks:
- overlay
volumes: # 设置数据卷, 数据卷不会因为服务的移除而删除
- db-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: somewordpress # 这里做的 mysql 数据库设置均置的相对应
MYSQL_DATABASE: wordpress # 与 wordpress 服务中设置相匹配
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
deploy:
placement: # 服务发布条件
constraints: [node.role == manager] # 只在管理节点上发布此服务
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8080:8080"
stop_grace_period: 1m30s # 在收到服务停止信号之后的 1分30秒后退出容器
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager] # 只在管理节点上发布此服务
volumes:
db-data: # 创建数据卷
networks:
overlay: # 创建网络

部署服务:

docker stack deploy -c docker-compose.yml wordpress

移除服务:

docker stack rm wordpress 此命令不会移除数据卷。

Docker Swarm Mode 学习笔记 (部署服务)的更多相关文章

  1. Docker Swarm Mode 学习笔记(聊聊 replicas)

    在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数. 示例 这里我们来创建一个 nginx 服务作为示例: version: '3' se ...

  2. Docker Swarm Mode 学习笔记 (基本概念)

    ​ Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具 节点 ​ 运行 Docker 的主机可以主动初始化一个 Swarm 集群 docker swarm ...

  3. Docker Swarm Mode 学习笔记(创建 Swarm 集群)

    Swarm 集群由管理节点与工作节点组成. 初始化集群 使用命令:docker swarm init 如果你的 Docker 主机有多个网卡, 拥有多个 IP 地址, 必须使用 --advertise ...

  4. Docker Swarm集群中部署Traefik负载均衡器

    一.创建单节点的Docker Swarm集群 docker swarm init 二.在Swarm集群中创建一个网络 docker network create --driver=overlay tr ...

  5. Docker Image管理学习笔记,ZT

    Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391

  6. SpringCloud学习笔记:服务支撑组件

    SpringCloud学习笔记:服务支撑组件 服务支撑组件 在微服务的演进过程中,为了最大化利用微服务的优势,保障系统的高可用性,需要通过一些服务支撑组件来协助服务间有效的协作.各个服务支撑组件的原理 ...

  7. docker容器的学习笔记

    目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...

  8. 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署

    在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...

  9. Apache OFBiz 学习笔记 之 服务引擎 二

    加载服务定义文件   ofbiz-component.xml:所有的服务定义文件在每个组件的ofbi-component.xml文件中   加载服务定义 例:framework/common/ofbi ...

随机推荐

  1. 【Python全栈-JavaScript】jQuery事件

    jQuery事件 一.页面载入 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数. 这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度. 简单地说,这个方法纯粹是对向 w ...

  2. web中spring框架启动流程第一发

    web.xml中springmvc相关配置如下:<servlet> <servlet-name>springmvc</servlet-name> <servl ...

  3. 常用sql 集合记录整理

    select 'truncate table ' + Name + ';' from sysobjects where xtype='U' order by name asc; -- 查询出指定库的 ...

  4. mybatis多参数传递(其中包括数组)

    mapper接口 public void batchDelete(@Param(value = "activityId") Integer activityId, @Param(v ...

  5. [py]pandas数据统计学习

    pandas.core.base.DataError: No numeric types to aggregate错误规避 我没有去解决这个问题, 而用填充0规避了这个问题 统计 聚合 d = [ { ...

  6. python中利用matplotlib绘图可视化知识归纳

    python中利用matplotlib绘图可视化知识归纳: (1)matplotlib图标正常显示中文 import matplotlib.pyplot as plt plt.rcParams['fo ...

  7. eclipse jpa 工具生成实体类

    1,配置数据库连接 打开eclipse, 选择数据库: 下一步,选择驱动包 根据自己的驱动包路径选择对应的驱动包: 2,配置jpa-tool 在项目上面右键->properties 点击ok,然 ...

  8. Ajax不执行回调函数的原因(转)

    今天用ajax的post请求后台,但是始终不执行回调函数,经查得知,ajax不执行回调函数的原因如下: jquery中规定返回的JSON字符串的KEY要用引号括起来,如{“result”: 1}这样才 ...

  9. VMware复制CentOS7,网络配置问题处理

    问题: vm安装CentOS7,静态IP配置完毕后,关闭虚机1,克隆虚拟机为2.克隆出来的虚拟机使用ip addr命令,发现网卡但和之前名称完全不一样变成ens33,也没有ip地址,但/etc/sys ...

  10. python之堡垒机(第九天)

    本节作业: 通过使用paramiko和sqlalchemy实现堡垒机功能 主要功能实现: 1.用户登录堡垒机后,无需知道密码或密钥可以SSH登录远端服务器: 2.用户对一个组内所有主机批量执行指定命令 ...