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
相关推荐
ximy133522 分钟前
AI服务器工作之整机部件(CPU+内存)
运维·服务器
weixin_4211334124 分钟前
bisheng 的 MCP服务器添加 或 系统集成
运维·服务器
IT_Octopus2 小时前
triton backend 模式docker 部署 pytorch gpu模型 镜像选择
pytorch·docker·triton·模型推理
AKAMAI2 小时前
安全风暴的绝地反击 :从告警地狱到智能防护
运维·人工智能·云计算
hkNaruto3 小时前
【DevOps】基于Nexus部署内网pypi代理镜像仓库操作手册
运维·devops
ximy13353 小时前
AI服务器工作之线材的接口介绍
运维·服务器
ximy13353 小时前
AI服务器工作之ubuntu系统下的驱动安装
运维·服务器·ubuntu
²º²²এ松3 小时前
蓝牙低功耗(BLE)通信的中心设备/外围设备(连接角色)、主机/从机(时序角色)、客户端/服务器(数据交互角色)的理解
运维·服务器·数据库
Maple_land3 小时前
常见Linux环境变量深度解析
linux·运维·服务器·c++·centos
wudl55664 小时前
Docker 常用命令
docker·容器·eureka