在Docker Swarm集群中使用compose文件来配置启动多个服务

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack 中的 Heat 十分类似。

它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

Compose 中有两个重要的概念:

  • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。

  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理

 

本篇博客是在搭建过Swarm集群基础上进行的,如未搭建过请移步:https://blog.csdn.net/M82_A1/article/details/94719485

 

一、Linux下的安装docker-compose二进制文件

1.下载二进制文件

sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2.修改文件权限

sudo chmod +x /usr/local/bin/docker-compose

3.查看版本信息

docker-compose --version

4.卸载

Linux下卸载直接删除对应二进制文件即可

sudo rm /usr/local/bin/docker-compose

二、启动集群

1.启动创建过的Swarm集群管理节点:

docker-machine start manager

2.连接到管理节点:

docker-machine ssh manager

3.在管理节点中创建compose文件(docker-compose.yml

boot2docker.iso镜像中默认没有其它编辑工具,使用vi进行编辑保存:

vi docker-compose.yml

4.输入以下内容:

version: "3"

services:
  wordpress:
    image: wordpress
    ports:
      - 80:80
    networks:
      - overlay
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    deploy:
      mode: replicated
      replicas: 3

  db:
    image: mysql
    networks:
       - overlay
    volumes:
      - db-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: 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
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]

volumes:
  db-data:
networks:
  overlay:

其中的 visualizer 服务提供一个可视化页面,可以从浏览器中很直观的查看集群中各个服务的运行节点。

三、部署服务

1.部署服务使用 docker stack deploy, -c 参数指定 compose 文件名。

docker stack deploy -c docker-compose.yml wordpress

2.打开浏览器,输入任意节点的IP地址:8080,即可看到各节点运行状态。

3.自动负载均衡

我们可以再次执行一次compose文件,查看节点的状态情况。

docker stack deploy -c docker-compose.yml wordpress

在浏览器中输入任意节点的IP地址:8080,再次查看节点状态。

可以看到已经进行了负载均衡。

4.查看服务

docker stack ls

5.移除服务

docker stack down wordpress

 

如有错误,欢迎指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值