Docker-compose容器编排

简介: Docker-Compose是Docker官方开源工具,通过docker-compose.yml文件定义多容器应用,实现一键编排、启动、停止。支持服务间依赖配置,简化微服务部署流程,提升开发运维效率。

14-Docker-compose容器编排
Docker-compose
Docker-Compose 是 Docker 官方的开源项目,负责实现对Docker容器集群的快速编排。
Docker-Compose可以管理多个Docker容器组成一个应用。需要定义一个yaml格式的配置文件 docker-compose.yml,配置好多个容器之间的调用关系,然后只需要一个命令就能同时启动/关闭这些容器。
Docker建议我们每个容器中只运行一个服务,因为Docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来。但是如果我们需要同时部署多个服务,每个服务单独构建镜像构建容器就会比较麻烦。所以 Docker 官方推出了 docker-compose 多服务部署的工具。
Compose允许用户通过一个单独的 docker-compose.yml 模板文件来定义一组相关联的应用容器为一个项目(project)。可以很容易的用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
核心概念:
服务(service):一个个应用容器实例
工程(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml中定义
Compose使用的三个步骤:
编写 Dockerfile 定义各个应用容器,并构建出对应的镜像文件
编写 docker-compose.yml,定义一个完整的业务单元,安排好整体应用中的各个容器服务
执行 docker-compose up 命令,其创建并运行整个应用程序,完成一键部署上线
安装Docker-Compose
Docker-Compose的版本需要和Docker引擎版本对应,可以参照官网上的对应关系。
安装Compose:
卸载Compose:直接删除 usr/local/bin/docker-compose文件即可
常用命令
执行命令时,需要在对应的docker-compose.yml文件所在目录下执行。
查看帮助:
创建并启动docker-compose服务:(类似 docker run)
停止并删除容器、网络、卷、镜像:(类似 docker stop + docker rm)
进入容器实例内部:
展示当前docker-compose编排过的运行的所有容器:
展示当前docker-compose编排过的容器进程:
查看容器输出日志:
检查配置:
重启服务:
启动服务:(类似 docker start)
停止服务:
compose编排实例
示例:
YAML
复制代码
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

docker-compose文件版本号

version: "3"

配置各个容器服务

services:
microService:
image: springboot_docker:1.0
container_name: ms01 # 容器名称,如果不指定,会生成一个服务名加上前缀的容器名
ports:

  - "6001:6001"
volumes:
  - /app/microService:/data
networks:
  - springboot_network
depends_on:  # 配置该容器服务所依赖的容器服务
  - redis
  - mysql

redis:
image: redis:6.0.8
ports:

  - "6379:6379"
volumes:
  - /app/redis/redis.conf:/etc/redis/redis.conf
  - /app/redis/data:data
networks:
  - springboot_network
command: redis-server /etc/redis/redis.conf

mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
MYSQL_DATABASE: 'db_springboot'
MYSQL_USER: 'springboot'
MYSQL_PASSWORD: 'springboot'
ports:

  - "3306:3306"
volumes:
  - /app/mysql/db:/var/lib/mysql
  - /app/mysql/conf/my.cnf:/etc/my.cnf
  - /app/mysql/init:/docker-entrypoint-initdb.d
networks:
  - springboot_network
command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问

networks:

创建 springboot_network 网桥网络

springboot_network:
编写完成docker-compose.yml后,进行语法检查:
Shell
运行代码
复制代码
1
2

进行语法检查

docker-compose config -q
如果语法检查没有任何问题,进行创建、启动:
Shell
运行代码
复制代码
1
docker-compose up -d

相关文章
|
8月前
|
存储 算法 Java
链表(链式存储)基本原理
链表是一种通过指针串联节点的线性结构,无需连续内存,支持高效增删。单链表仅有next指针,双链表增加prev指针以支持双向遍历。相比数组,链表插入删除灵活,无扩容负担,但不支持随机访问,查找需从头遍历。实际开发中常用双链表,配合虚拟头结点简化操作。
|
8月前
|
Java Maven Docker
-Docker发布微服务
本教程介绍如何将SpringBoot微服务打包并发布到Docker容器。首先创建Maven项目,编写Controller接口与配置文件,通过Maven打包成jar;再将jar上传服务器,编写Dockerfile构建镜像,最终运行容器并映射端口6001,实现微服务的Docker化部署。
|
7月前
|
弹性计算 网络协议
有问必答:阿里云99元服务器ECS经济型e实例性能测评ecs.e-c1m1.large实例规格族
阿里云2026年推出99元/年ECS经济型e实例,配置为2核2G、3M固定带宽、40G ESSD Entry云盘,新老用户均可购买,续费同价。活动期间(至2027年3月31日)每年可享一次99元续费,性能稳定,适合个人博客、WordPress等轻量应用,不限流量,独享IP,详情见阿里云官网。
664 2
|
8月前
|
弹性计算 人工智能 负载均衡
阿里云服务器爆款直降活动简介:轻量应用服务器抢购、99套餐和u2a与AMD云服务器优惠讲解
为了助力更多用户优惠上云,阿里云推出了众多活动,例如云工开物、云资源产品活动、组合购等,其中云服务器爆款直降活动是阿里云推出的云服务器专属活动,活动内的云产品以云服务器产品为主,包括当下轻量应用服务器抢购,云服务器99元套餐,和全新推出的通用算力型u2a实例及第九代计算型c9a、通用型g9a、内存型r9a等实例规格的云服务器均可通过此活动选购。本文为大家讲解具体的活动内容及注意事项,以供参考和选择。
|
9月前
|
关系型数据库 数据库 Docker
Docker Compose 实战指南:多容器应用的一站式部署解决方案
大家好,我是D枫。随着容器化普及,单个Docker已难满足复杂应用需求。Docker Compose通过一个YAML文件定义多容器服务,实现一键启动、停止与配置管理,彻底解决环境不一致、操作繁琐和依赖混乱问题。本文带你深入理解其核心原理,实战搭建Flask+MySQL应用,掌握高效开发利器。
1142 1
|
8月前
|
存储 人工智能 数据库
阿里云“云工开物”计划:高校学生及教师权益解读参考
“云工开物”是阿里云面向全国高校学生及教师用户推出的专项活动,以云计算和AI技术支持AI时代高校人才培养和科研创新。通过学生认证的高校学生,可领取300元无门槛优惠券。用户是国内高校/科研机构的教师(含博士后)用户完成教师身份认证,在申请表单中说明应用场景并通过审核,可领取阿里云公共云产品(特殊商品除外)五折优惠,订单原价总量不超过40万元。本文为大家解析“云工开物”计划下高校学生及教师的权益规则,并详细解答常见问题,帮助师生更好地理解和享受这一权益。
1300 6
|
编解码 Ubuntu Linux
Linux Mint vs Ubuntu:哪个更适合初学者?
由于Linux Mint只是Ubuntu的更漂亮版本,因此两种发行版的游戏功能没有太大差异。只要您拥有最新的英伟达或Mesa(AMD)驱动程序,就应该没问题。
|
存储 缓存 算法
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
828 29
JVM简介—1.Java内存区域
|
存储 弹性计算 小程序
阿里云高校学生及教师用户专属“云工开物”活动学生和教师优惠权益及规则介绍
云工开物是阿里云面向全国高校学生及教师用户推出的专项高校计划,旨在通过提供丰富的云端资源和优惠权益,助力高校师生在云上科研、教学和学习活动中取得更显著的成果。本文将深入解析“云工开物”计划下高校学生及教师的权益规则,并详细解答常见问题,帮助师生更好地理解和利用这一计划。
1598 0

热门文章

最新文章