目录

什么是 Docker Compose?

Docker Compose 的安装

Docker Compose 的使用

编写 Docker Compose 文件

启动 Docker Compose

停止 Docker Compose

其他常用命令

总结


什么是 Docker Compose?

Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多个 Docker 容器的应用。通过 Docker Compose,我们可以使用一个 YAML 文件来配置应用的服务,并通过一个命令来启动、停止、重启应用中的所有服务。

Docker Compose 的安装

Docker Compose 可以通过官方网站下载安装包进行安装,也可以通过 pip 命令进行安装。

# 通过 pip 安装 Docker Compose
pip install docker-compose

Docker Compose 的使用

使用 Docker Compose,我们需要创建一个 YAML 文件来定义应用的服务,并通过 docker-compose 命令来启动、停止、重启应用中的所有服务。

编写 Docker Compose 文件

一个 Docker Compose 文件由多个服务组成,每个服务都包含以下配置项:

  • image:服务所使用的 Docker 镜像。
  • container_name:服务的容器名称。
  • ports:服务所映射的端口。
  • volumes:服务所挂载的数据卷。
  • environment:服务所需要的环境变量。

下面是一个简单的 Docker Compose 文件示例,用于启动一个 Nginx 服务和一个 Node.js 服务:

version: '3'

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - node

  node:
    image: node:latest
    container_name: node
    volumes:
      - ./app:/app
    environment:
      - NODE_ENV=production

在这个示例中,我们定义了两个服务:nginx 和 nodenginx 服务使用了 nginx:latest 镜像,并将容器名称设置为 nginx,同时将宿主机的 80 端口映射到容器的 80 端口上。nginx 服务还挂载了宿主机的 nginx.conf 文件到容器的 /etc/nginx/nginx.conf 路径下,并指定了 node 服务为其依赖项。

node 服务使用了 node:latest 镜像,并将容器名称设置为 node,同时将宿主机的 ./app 目录挂载到容器的 /app 路径下,并设置了 NODE_ENV=production 环境变量。

启动 Docker Compose

编写好 Docker Compose 文件后,我们可以使用 docker-compose up 命令来启动所有服务。

# 启动所有服务
docker-compose up

在启动过程中,Docker Compose 会自动下载并启动所需的 Docker 镜像,并创建对应的容器。

停止 Docker Compose

使用 docker-compose down 命令可以停止并删除所有服务对应的容器。

# 停止并删除所有容器
docker-compose down

其他常用命令

除了 up 和 down 命令外,Docker Compose 还提供了其他常用命令,如:

  • start:启动所有服务。
  • stop:停止所有服务。
  • restart:重启所有服务。
  • ps:列出所有服务对应的容器。
  • logs:查看所有服务对应的容器的日志。

更多命令可以通过 docker-compose --help 命令查看。

总结

Docker Compose 是一个非常方便的工具,可以帮助我们快速定义和管理多个 Docker 容器的应用。通过 YAML 文件的方式,我们可以清晰地定义每个服务的配置,并通过一个命令来启动、停止、重启应用中的所有服务。