Docker compose v3版本构建跨主机容器编排构建wordpress集群

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介:

   在Docker 1.13版本之后,可以说Docker 对于compose容器调度编排实现了飞跃,可以使得在编排容器的时候可以结合Docker swarm集群和跨主机通讯的概念。在Docker swarm 的基础之上引入stack对service镜像管理和编排。下面我们实战一下用之前构建wordpress集群来测试一下:


环境要求:

1、存在了Docker swarm集群:

1
2
3
4
5
[root@master ~] # docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
e9naz0ctzaaer4bwleruo34x6 *  master    Ready   Active        Reachable
rfcbavxd8yrixximm9e1i6dsn    node1     Ready   Active        Leader
shrzku0k3xx87526lkkkyrxsi    node2     Ready   Active        Reachable

##我这里有三个集群节点,都是以manager的形式存在,当然容器调度也是不影响的。


2、Docker 版本要求是1.13以上的版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@master ~] # docker version
Client:
  Version:      17.04.0-ce
  API version:  1.28
  Go version:   go1.7.5
  Git commit:   4845c56
  Built:        Mon Apr  3 18:01:50 2017
  OS /Arch :      linux /amd64
Server:
  Version:      17.04.0-ce
  API version:  1.28 (minimum version 1.12)
  Go version:   go1.7.5
  Git commit:   4845c56
  Built:        Mon Apr  3 18:01:50 2017
  OS /Arch :      linux /amd64
  Experimental:  false

3、基于之前的镜像我们构建时候非常简单,直接编写compose文件即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@master stack] # cat compose_wordpress.yml 
version:  '3'
services:
   php:
     image:  192.168.63.217:5000 /lnmp/php :1.0 
     volumes:
       -   /web : /web
     ports:
       - 9000:9000
   nginx:
     image:  192.168.63.217:5000 /lnmp/nginx :1.0
     ports:
       - 80:80
     volumes:
       /web : /web
     depends_on:
       - mysql
     deploy:
       replicas: 3
       restart_policy:
         condition: on-failure
   mysql:
     image:  192.168.63.217:5000 /lnmp/nginx :1.0
     ports:
       - 3306:3306
     volumes:
       /data : /var/lib/mysql

 ##注释;

restrat_policy:表示重启条件,我们定义是错误重启。

在v3版本,没有了link这个概念,容器之间通讯都是使用overlay网络。通讯名称都是以服务名称互联。


4、开始构建:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@master stack] # docker stack deploy -c compose_wordpress.yml wordpress
Creating network wordpress_default
Creating service wordpress_php
Creating service wordpress_nginx
Creating service wordpress_mysql
##构建时候可以看到创建一个wordpress_default这样一个overlay网络:
[root@master stack] # docker network ls
NETWORK ID          NAME                    DRIVER              SCOPE
e1608d2e6f7d        bridge                  bridge               local
5de3863d8bf9        docker_gwbridge         bridge               local
c97de54d6fcc        dockercompose_default   bridge               local
080a6647873b        host                    host                 local
wdqd0cye6t5h        wordpress_default       overlay             swarm


5、我们查看一下相关的stack状态:

1
2
3
4
5
[root@master stack] # docker stack services wordpress
ID                  NAME                MODE                REPLICAS            IMAGE
hx5zabzybbny        wordpress_php       replicated          1 /1                  192.168.63.217:5000 /lnmp/php :1.0
me5s3v37tzsw        wordpress_nginx     replicated          3 /3                  192.168.63.217:5000 /lnmp/nginx :1.0
txz5xzgnkjbc        wordpress_mysql     replicated          1 /1                  192.168.63.217:5000 /lnmp/nginx :1.0

6、可以看到worepress 这个调度的stack已经起起来了,因为是与Docker swarm结合,所以我们也可以用Docker swarm 形式来查看和管理:

1
2
3
4
5
6
7
8
9
10
[root@master stack] # docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE
hx5zabzybbny        wordpress_php       replicated          1 /1                  192.168.63.217:5000 /lnmp/php :1.0
me5s3v37tzsw        wordpress_nginx     replicated          3 /3                  192.168.63.217:5000 /lnmp/nginx :1.0
txz5xzgnkjbc        wordpress_mysql     replicated          1 /1                  192.168.63.217:5000 /lnmp/nginx :1.0
[root@master stack] # docker service ps wordpress_nginx
ID                  NAME                IMAGE                                NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
9pcbe6zvjoa5        wordpress_nginx.1   192.168.63.217:5000 /lnmp/nginx :1.0   master              Running             Running 4 minutes ago                       
ode397gc036g        wordpress_nginx.2   192.168.63.217:5000 /lnmp/nginx :1.0   node2               Running             Running 4 minutes ago                       
76tznesy3bm8        wordpress_nginx.3   192.168.63.217:5000 /lnmp/nginx :1.0   node1               Running             Running 4 minutes ago

 

7、都起起来了,我们访问一下web界面看一下服务是否正常:


wKiom1kK9Gfy8oyMAACK-HGes08977.png


   到处已经完成了这个管理,我们可以看到Docker 社区的集群软件在不断的成熟和完善,期待Docker 推出更好更实用的功能。

 

Docker详情与集群架构部分可以查看:http://www.roncoo.com/course/view/3e9d9c48f76f4c698b8349d04b763467










本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1922134,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
18天前
|
弹性计算 运维 Kubernetes
实践篇:灵活调度,高效编排,容器化管理云上应用
【7月更文第8天】阿里云容器服务Kubernetes版(ACK)作为业界领先的容器管理和编排服务,凭借其强大的技术实力和丰富的云服务生态,为企业级用户提供了一系列卓越的优势,助力现代化应用的快速构建、部署与运维。
33 1
|
7天前
|
Ubuntu Devops 云计算
ubuntu docker-compose编排容器并且设置自启动
使用Docker Compose编排容器并设置为Ubuntu系统的自启动服务,不仅优化了应用的部署流程,也提升了运行时的可管理性和可靠性。通过上述步骤,您可以轻松实现这一目标。维护此类服务时,记得定期检查和更新您的 `docker-compose.yml`文件,确保所有的服务都符合当前的业务需求和技术标准。在云计算和微服务架构不断演进的今天,掌握Docker Compose等工具对于DevOps和软件工程师来说,变得尤为重要。
24 3
|
12天前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
19天前
|
运维 Kubernetes 负载均衡
docker、docker compose、k8s有什么区别?
Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。
56 1
|
19天前
|
Kubernetes Cloud Native 微服务
企业级容器部署实战:基于ACK与ALB灵活构建云原生应用架构
这篇内容概述了云原生架构的优势,特别是通过阿里云容器服务Kubernetes版(ACK)和应用负载均衡器(ALB)实现的解决方案。它强调了ACK相对于自建Kubernetes的便利性,包括优化的云服务集成、自动化管理和更强的生态系统支持。文章提供了部署云原生应用的步骤,包括一键部署和手动部署的流程,并指出手动部署更适合有技术背景的用户。作者建议在预算允许的情况下使用ACK,因为它能提供高效、便捷的管理体验。同时,文章也提出了对文档改进的建议,如添加更多技术细节和解释,以帮助用户更好地理解和实施解决方案。最后,展望了ACK未来在智能化、安全性与边缘计算等方面的潜在发展。水文一篇,太忙了,见谅!
|
25天前
|
存储 监控 安全
Docker Compose:轻松实现容器编排的利器
【7月更文挑战第2天】 1. **基础与概念**:服务(多容器实例)、网络(灵活通信)、卷(数据持久化)和配置(安全管理)。 2. **实战指南**:安装Compose,编写`docker-compose.yml`文件,启动应用,并介绍依赖、环境变量、健康检查和数据持久化。 3. **最佳实践**:环境隔离、CI/CD集成、资源管理、日志监控、安全策略及案例分析,展示完整应用栈搭建。
41 1
|
5天前
|
运维 Kubernetes Docker
|
7天前
|
Kubernetes 调度 Docker
|
12天前
|
关系型数据库 应用服务中间件 nginx
容器引擎Docker
带你简单了解docker,开发必备!!!
38 0
|
存储 网络协议 Docker
在Docker中使用Open vSwitch创建跨主机的容器网络
本文讲的是在Docker中使用Open vSwitch创建跨主机的容器网络,【编者的话】本文介绍了如何使用Open vSwitch为Docker 1.9.0及以后版本提供网络支持。操作前请先确认你已经按照INSTALL.md 编译,或者通过包管理器安装了Open vSwitch。
2050 0

相关产品

  • 容器服务Kubernetes版