当前位置: 首页 > article >正文

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负载均衡:

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


http://www.kler.cn/a/534520.html

相关文章:

  • 自定义多功能输入对话框:基于 Qt 打造灵活交互界面
  • 【漫话机器学习系列】070.汉明损失(Hamming Loss)
  • 基于直觉的理性思维入口:相提并论的三者 以“网络”为例
  • [c语言日寄]赋值操作对内存的影响
  • Page Assist - 本地Deepseek模型 Web UI 的安装和使用
  • MySQL UNION 操作详解
  • 【Elasticsearch】 邻接矩阵聚合(Adjacency Matrix Aggregation)
  • ASP.NET Core中间件Markdown转换器
  • 数据加载器--不同文档数据格式的加载方法
  • seata 1.3.0 本地安装步骤
  • go-zero学习笔记(四)
  • python(自学10-2)获取豆瓣页面 下载成json格式
  • 7.PPT:“中国梦”学习实践活动【20】
  • MySQL常见的存储引擎和区别
  • ASP.NET Core与EF Core的集成
  • 系留无人机通信中继、空地组网技术详解
  • Spring ApplicationContext接口及其实现类的作用
  • React中为每个列表项显示多个DOM节点的解决方案
  • GS论文阅读--Mini-Splatting
  • vscode+Cmake配置c++轻量级环境
  • Java进阶13 线程池
  • Racecar Gym 代码
  • 深入解析:如何利用 Python 爬虫获取商品销量详情
  • 系统学习算法:专题九 穷举vs暴搜vs深搜vs回溯vs剪枝
  • 畅游Diffusion数字人(15):详细解读字节跳动最新论文——音频+姿态控制人类视频生成OmniHuman-1
  • Vue WebSocket简单应用 ws