docker-compose 是一个用于定义和运行多个 Docker 容器的工具。它使用一个单独的 YAML 文件来配置应用程序的服务,然后使用该文件来创建和管理这些服务。docker-compose 可以简化容器的管理和部署过程,使得多个容器之间的通信和协作更加容易。

docker-compose 的版本与 Docker 引擎的版本有一定的对应关系。不同的版本组合可能会有一些兼容性问题,因此在使用 docker-compose 时需要根据 Docker 引擎的版本选择合适的 docker-compose 版本。

下面是一些常见的 docker-compose 和 Docker 引擎版本对应关系:

  • docker-compose 1.29.x 对应 Docker 引擎 20.10.x
  • docker-compose 1.28.x 对应 Docker 引擎 20.10.x
  • docker-compose 1.27.x 对应 Docker 引擎 19.03.x
  • docker-compose 1.26.x 对应 Docker 引擎 19.03.x
  • docker-compose 1.25.x 对应 Docker 引擎 18.09.x
  • docker-compose 1.24.x 对应 Docker 引擎 18.06.x

根据上述对应关系,我们可以选择合适的 docker-compose 版本来与所使用的 Docker 引擎配合使用。

下面是一个简单的示例,演示了如何使用 docker-compose 来创建和管理多个容器。

首先,我们需要创建一个名为 docker-compose.yaml 的文件,用于定义我们的应用程序服务。以下是一个示例的 docker-compose.yaml 文件:

version: '3'
services:
  web:
    build: .
    ports:
      - "80:80"
    volumes:
      - .:/app
  db:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_DATABASE=mydatabase
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword

在上面的示例中,我们定义了两个服务:webdbweb 服务是一个自定义的镜像,它会在本地构建。db 服务使用了一个预先构建好的 MySQL 镜像,我们还通过环境变量来设置了一些 MySQL 的配置参数。

接下来,我们可以使用以下命令来启动这些服务:

$ docker-compose up

这将会根据 docker-compose.yaml 文件中的定义,创建并启动相应的容器。我们可以使用 docker-compose ps 命令来查看当前正在运行的容器:

$ docker-compose ps

如果需要停止这些容器,可以使用以下命令:

$ docker-compose down

以上就是一个简单的使用 docker-compose 的示例。通过定义一个 YAML 文件,我们可以轻松地创建和管理多个 Docker 容器。请记住,在选择 docker-compose 版本时要与所使用的 Docker 引擎版本保持兼容。