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
在上面的示例中,我们定义了两个服务:web
和 db
。web
服务是一个自定义的镜像,它会在本地构建。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 引擎版本保持兼容。