一、概述
用于简化在单个主机上定义和运行多容器 Docker 应用的过程。也就是说Docker Compose是一个用于定义和运行多个Docker容器的工具。
二、使用Docker Compose的简要步骤如下:
(1). 创建一个YAML文件(通常命名为 docker-compose.yml ),用于定义应用程序的服务、网络和卷等配置。
(2). 在YAML文件中定义服务,包括容器的镜像、端口映射、环境变量、依赖关系等。
(3). 运行 docker-compose up 命令,Docker Compose将根据YAML文件中的配置启动和管理容器。
(4). 使用 docker-compose down 命令停止和删除由Compose创建的容器。
三、安装
yum install docker-compose
以下是一个简单的Docker Compose示例:
version: '3'
services:
web:
image: nginx:latest
ports:
- 3888:80
volumes:
- ./opt/wms-web/:/usr/share/nginx/html/
db:
image: mysql:latest
ports:
- 3999:3306
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ./opt/db/:/var/lib/mysql/
在这个示例中,我们定义了两个服务: web 和 db 。
web 服务使用了 nginx:latest 镜像,并将主机的3888端口映射到容器的80端口。还定义了一个卷,将主机的 ./opt/wms-web 目录映射到容器的 /usr/share/nginx/html 目录。
db 服务使用了 mysql:latest 镜像,并设置了一个环境变量 MYSQL_ROOT_PASSWORD 。还定义了一个卷,将主机的 ./opt/db 目录映射到容器的 /var/lib/mysql 目录。
通过运行 docker-compose up 命令,Docker Compose将启动这两个容器,并根据定义的配置进行设置。这样,我们就可以同时运行和管理这两个容器,它们可以相互通信和交互。
docker-compose up
四、测试
docker-compose scale web=5 是 Docker Compose 的一个命令,用于设置服务 web 的实例数量为 5。在 Docker Compose 中,您可以定义多个服务并在同一环境中管理和运行它们。scale 命令允许您根据需求增加或减少特定服务的容器实例数量。
尽管这条命令曾经是调整服务实例数量的标准方式,但根据较早的参考资料(2020年及以后),官方已经不推荐直接使用 docker-compose scale 命令了。取而代之的是建议使用 docker-compose up --scale web=5 命令来达到同样的效果,即启动或重新启动服务,并同时设置 web 服务运行5个容器实例。
执行这条命令后,Docker Compose 将会检查当前 web 服务的实际运行容器数量,并相应地创建或停止容器,以确保最终有 5 个容器正在运行 web 服务。这对于水平扩展应用非常有用,特别是在负载均衡场景下,通过增加服务实例的数量来提高系统的处理能力或可用性。
docker-compose scale web=5
五、遇到的问题
解决方法:在docker-compose.yml文件中去掉端口的配置(去掉下图圈住部分),我们要启动5个,配置了端口我们只能启动一个,所以就会报错
改为
六、 扩展