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

相关文章
|
2月前
|
Java Maven Docker
-Docker发布微服务
本教程介绍如何将SpringBoot微服务打包并发布到Docker容器。首先创建Maven项目,编写Controller接口与配置文件,通过Maven打包成jar;再将jar上传服务器,编写Dockerfile构建镜像,最终运行容器并映射端口6001,实现微服务的Docker化部署。
|
3月前
|
关系型数据库 数据库 Docker
Docker Compose 实战指南:多容器应用的一站式部署解决方案
大家好,我是D枫。随着容器化普及,单个Docker已难满足复杂应用需求。Docker Compose通过一个YAML文件定义多容器服务,实现一键启动、停止与配置管理,彻底解决环境不一致、操作繁琐和依赖混乱问题。本文带你深入理解其核心原理,实战搭建Flask+MySQL应用,掌握高效开发利器。
571 1
|
安全 Ubuntu
Ubuntu Samba高危安全漏洞修复
Ubuntu系统中使用的Samba版本存在一个或多个高风险安全漏洞。受影响的Samba版本包括但不限于4.13.x低于4.13.17、4.14.x低于4.14.12以及4.15.x低于4.15.5。这些漏洞可能会允许未经身份验证的攻击者远程执行恶意代码,获取未经授权的访问权限,或者进行其他形式的安全攻击。
739 0
|
23天前
|
数据采集 机器学习/深度学习 人工智能
关于数据集的采集、清理与数据,看这篇文章就够了
本文用通俗语言解析AI“隐形王者”——数据集,涵盖本质价值、三类数据形态、全生命周期七步法(需求定义→采集→清洗→标注→存储→划分→评估),并以垃圾评论拦截为例手把手实操。强调“数据即新石油”,质量决定模型上限。
137 16
|
2月前
|
存储 人工智能 数据库
阿里云“云工开物”计划:高校学生及教师权益解读参考
“云工开物”是阿里云面向全国高校学生及教师用户推出的专项活动,以云计算和AI技术支持AI时代高校人才培养和科研创新。通过学生认证的高校学生,可领取300元无门槛优惠券。用户是国内高校/科研机构的教师(含博士后)用户完成教师身份认证,在申请表单中说明应用场景并通过审核,可领取阿里云公共云产品(特殊商品除外)五折优惠,订单原价总量不超过40万元。本文为大家解析“云工开物”计划下高校学生及教师的权益规则,并详细解答常见问题,帮助师生更好地理解和享受这一权益。
393 5
|
6月前
|
编解码 Ubuntu Linux
Linux Mint vs Ubuntu:哪个更适合初学者?
由于Linux Mint只是Ubuntu的更漂亮版本,因此两种发行版的游戏功能没有太大差异。只要您拥有最新的英伟达或Mesa(AMD)驱动程序,就应该没问题。
|
jenkins 持续交付 Docker
docker版下载最新稳定版本的jenkins
docker版下载最新稳定版本的jenkins
1129 0
docker版下载最新稳定版本的jenkins
|
6月前
|
存储 弹性计算 小程序
阿里云高校学生及教师用户专属“云工开物”活动学生和教师优惠权益及规则介绍
云工开物是阿里云面向全国高校学生及教师用户推出的专项高校计划,旨在通过提供丰富的云端资源和优惠权益,助力高校师生在云上科研、教学和学习活动中取得更显著的成果。本文将深入解析“云工开物”计划下高校学生及教师的权益规则,并详细解答常见问题,帮助师生更好地理解和利用这一计划。
915 0
|
11月前
|
Linux 虚拟化 Docker
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
1879 1
|
Kubernetes Apache 流计算
flink-kubernetes-operator 的简单使用
flink-kubernetes-operator 的简单使用
1065 0