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
相关推荐
Leinwin4 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382504 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇4 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7594 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣5 小时前
智能体选型实战指南
运维·人工智能
yy55275 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ6 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔7 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密7 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20157 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑