docker容器编排工具 docker compose

一、docker compose概述:

1.docker compose 是一个用于定义和运行多容器docker应用程序工具

2.docker compose主要功能:

定义服务:

使用yaml格式的配置文件来定义一组相关的容器服务,每个容器可以指定镜像、端口映射、环境变量、存储卷等参数。

一键启动和停止:

通过一个简单的命令可以启动或停止整个应用程序包含的所有容器

可以使用docker-compose up 命令可以启动配置文件中定义的所有服务,使用docker-compose down可以停止并删除这些服务

服务编排:

可以定义容器之间的依赖关系,确保服务按照正常的顺序启动和停止,即可以指定数据库服务必须在web容器之前启动

支持网络配置,使不同服务的容器可以相互通信。可以定义一个自定义网络并将所相关的容器连接到这个网络上

环境变量管理:

可以在配置文件中定义环境变量并在容器启动时传递给容器,使得在不同的环境中使用不同的配置更加容易,即可以定义一个数据库连接字符串常量可以在不同环境中设置不同的值。

3.工作原理:

读取配置文件:docker compose 读取yaml配置文件,解析其中定义的服务和参数

创建容器:根据配置文件中的定义,docker compose调用docker引擎创建的相应的容器,会下载所需要的镜像并设置容器的各种参数

管理容器的生命周期:docker compose监控容器的状态,并在需要时启动、停止、重启容器,还可以处理容器的故障恢复,如自动重启失败的容器

4.docker compose中的管理层:

服务是一个应用的容器,实际上可以包括若干运行相同镜像的容器实例

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

容器是服务的具体实例,每个服务可以由一个或者多个容器。容器时基于服务定义的镜像创建的应用实例

5.docker compose常用命令:

服务管理:

docker-compose up:

启动配置文件中定义的所有服务

可以使用-d参数在后台启动服务

可以使用-f来指定yml文件

docker-compose down:

停止并删除配置文件中定义的所有服务以及相关的网络和存储卷

docker-compose start:

启动已经存在的服务,但不会创建新的服务

docker-compose stop:

停止正在运行的服务

docker-compose restart:

重启服务

服务状态查看:

docker-compose ps:

列出正在运行的服务以及它们的状态,包括容器的id 端口映射 名称等信息

docker-compose logs:

查看服务的日志输出,后面加指定服务的名称可以查看特定服务的日志

其他操作:

docker-compose exec:

在正在执行的服务容器中执行命令

docker-compose pull:

拉取配置文件中定义的服务所使用的镜像

docker-compose config:

验证并查看解析后的compose文件内容

6.docker compose中的yml文件:

用于定义和配置多容器应用程序的各个服务

服务:

**服务名称:**每个服务在配置文件中都有唯一的名称,用于在命令行和其他部分引用该服务

**镜像:**指定服务所使用的docker镜像名称和标签

端口映射:将容器内部的端口映射到主机的端口,一边外部可以访问容器内的服务

环境变量:

存储卷

**命令:**覆盖容器启动时默认执行的命令

7.利用容器编排完成haproxy和nginx负载均衡:

bash 复制代码
services:
web1:
image: nginx:latest
container_name: web1
restart: always
networks:
- mynet1
expose:
- 80
volumes:
- /docker/web/html1:/usr/share/nginx/html
web2:
image: nginx:latest
container_name: web2
restart: always
networks:
- mynet1
expose:
- 80
volumes:
- /docker/web/html2:/usr/share/nginx/html
haproxy:
image: haproxy:2.3
container_name: haproxy
restart: always
networks:
- mynet1
- mynet2
volumes:
- /docker/conf/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
ports:
- 80:80
networks:
mynet1:
driver: bridge
mynet2:
driver: bridge
相关推荐
九硕智慧建筑一体化厂家31 分钟前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
刘某的Cloud2 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
QX_hao3 小时前
【Kubernetes】 的三个Probe
容器·kubernetes
神奇霸王龙4 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
cfm_29144 小时前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
迪康Defender5 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
HiDev_6 小时前
【非标自动化】2、认识元器件(固态继电器)
运维·自动化
明达智控技术6 小时前
国产 PLC 落地立库自动化,MC5000边缘智能控制器破局
运维·自动化
小绫网络安全7 小时前
Kali Linux渗透测试入门教程:从零搭建到实战攻防
linux·运维·服务器
allforgood7 小时前
控制启动过程
linux·运维·服务器