目录
一、Docker Compose概述
1、主要功能
-
定义服务: 使用 YAML 格式的配置文件来定义一组相关的容器服务。每个服务可以指定镜像、端口映射、 环境变量、存储卷等参数。 例如,可以在配置文件中定义一个 Web 服务和一个数据库服务,以及它们之间的连接关系。
-
一键启动和停止: 通过一个简单的命令,可以启动或停止整个应用程序所包含的所有容器。这大大简化了多容器 应用的部署和管理过程。 例如,使用 docker-compose up 命令可以启动配置文件中定义的所有服务,使用 dockercompose down 命令可以停止并删除这些服务。
-
服务编排: 可以定义容器之间的依赖关系,确保服务按照正确的顺序启动和停止。例如,可以指定数据库 服务必须在 Web 服务之前启动。 支持网络配置,使不同服务的容器可以相互通信。可以定义一个自定义的网络,将所有相关的 容器连接到这个网络上。
-
环境变量管理: 可以在配置文件中定义环境变量,并在容器启动时传递给容器。这使得在不同环境(如开发、 测试和生产环境)中使用不同的配置变得更加容易。 例如,可以定义一个数据库连接字符串的环境变量,在不同环境中可以设置不同的值。
2、工作原理
Docker Compose 的工作原理是通过一个 YAML 配置文件定义一组相关的 Docker 容器服务,它读取配置文件后,根据其中指定的服务信息,如镜像、端口映射、环境变量、依赖关系等,依次创建和启动各个容器,并管理容器之间的网络连接和数据共享,确保整个应用系统按照预定的配置协同工作。
二、常用命令参数
[root@docker-node1 ~]# vim ~/.vimrc
set ts=2 ai sw=2 et
#yml有严格缩进
[root@docker-node1 ~]# vim /root/test/docker-compose.yml
version: "1.0"
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: leo
1、服务管理
docker compose up
启动配置文件中定义的所有服务。
可以使用 -d 参数在后台启动服务。
可以使用-f 来指定yml文件。
例如: docker-compose up -d
[root@docker-node1 test]# docker compose up -d
[root@docker-node1 test]# docker compose -f /root/test/docker-compose.yml up -d
停止并删除配置文件中定义的所有服务以及相关的网络和存储卷
[root@docker-node1 test]# docker compose down
docker compose start : 启动已经存在的服务,但不会创建新的服务
[root@docker test]# docker compose start
docker compose stop : 停止正在运行的服务
[root@docker test]# docker compose stop
docker compose restart : 重启服务
[root@docker test]# docker compose restart
docker compose ps : 列出正在运行的服务以及它们的状态,包括容器 ID、名称、端口映射等信息
docker compose logs : 查看服务的日志输出。可以指定服务名称来查看特定服务的日志
2、构建和重新构建服务
“docker compose up” 用于创建并启动由 Compose 文件定义的服务,而 “docker compose build” 用于构建服务所使用的镜像。
[root@docker-node1 test]# vim /root/docker/Dockerfile
FROM busybox:latest
RUN touch /file1
[root@docker-node1 test]# vim /root/docker/leo
FROM busybox:latest
RUN touch /file2
[root@d