14-Docker-compose容器编排 Docker-compose

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

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

相关文章
|
数据安全/隐私保护 Docker 容器
【Docker】使用docker安装部署NextCloud私人网盘
【Docker】使用docker安装部署NextCloud私人网盘
5284 0
【Docker】使用docker安装部署NextCloud私人网盘
|
2月前
|
关系型数据库 应用服务中间件 nginx
Docker Compose实战指南
本文基于 Docker Compose V2(官方推荐),涵盖核心概念、YAML 配置详解、常用命令、四大实战案例及生产级最佳实践,助你从新手成长为能独立部署复杂多容器应用的专家。
592 1
|
XML 负载均衡 API
Docker Compose(一)
Docker Compose
492 0
|
6月前
|
存储 Ubuntu Shell
05-容器命令
本文介绍了Docker容器的常用操作命令,包括启动、查看、启停、删除容器,日志与进程查看,进入容器方式(exec/attach区别),文件拷贝,数据卷挂载与继承,容器导出导入及commit生成镜像等,并涵盖权限处理与典型问题解决方案,助力掌握容器数据持久化与高效管理。
|
7月前
|
NoSQL 网络安全 Redis
redis也可以整个db拷贝
导出和导入的时候,yunedit-redis还可以选择导出策略和导入策略,比如导出什么类型的数据,假如你只想导出某种类型的数据,比如list类型或hash类型,也是可以的。 它还支持ssh通过,在服务端没有暴露redis端口的情况下,可以通过ssh跳板机,做ssh隧道映射端口到本地。
|
存储 Linux 内存技术
linux系统查看硬盘序列号
本文介绍在Linux系统中查看硬盘信息的三种方法:1) 使用`hdparm`工具,通过`sudo hdparm -i /dev/sda`获取硬盘序列号和型号;2) 使用`smartctl`工具,不仅可查序列号和型号,还能了解硬盘健康状态;3) 使用`lshw`命令显示存储设备拓扑信息。此外,提供通用技巧如用`lsblk`确认磁盘标识,及注意事项,例如管理员权限和云主机可能隐藏物理序列号等。
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
551 22
|
前端开发 应用服务中间件 数据库
Docker-docker-compose学习笔记(yaml,实战)
Docker-docker-compose学习笔记(yaml,实战)
1229 0
|
存储 Java API
|
监控 安全 网络协议
这10款网络扫描工具,是个网工,都想全部安装!
这10款网络扫描工具,是个网工,都想全部安装!
3725 1