Docker Compose是一个用于定义和运行多个Docker容器应用程序的工具,通过使用一个单一的YAML文件来配置应用程序依赖项来完整地运行多个容器。Docker Compose 一般用于本地开发和测试,以及非常适合DevOps(开发和运维)工作流程的自动化。
使用Docker Compose,您可以轻松地创建和启动所有需要的容器,每个容器都有其自己内部的设定。例如,您的应用程序可能需要数据库这样的外部服务,因此您可以在您的 Docker Compose 文件中配置一个数据库容器。Docker Compose 使用 Dockerfile 来构建这些容器,并通过配置一个容器来链接其他容器来完成所有启动应用程序所需的工作。
version: '3'services:# 一个nodejs的例子:nodejs:build: .ports:- "80:3000"volumes:- .:/applinks:- database- redisdepends_on:- database- redisenvironment:NODE_ENV: developmentdatabase:image: "mongo"environment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: exampleredis:image: "redis"
上述是一个很常见的,用于在本地开发和测试应用程序时的 Docker Compose 文件例子。在这个例子中,我们定义了三个服务:一个 Node.js 服务,一台 MongoDB 数据库,以及一台 Redis 缓存服务器。
对于 Node.js 服务,我们使用 Dockerfile 构建并链接到其他两个容器服务。我们还定义了端口映射和共享卷只为容器,保证我们在编辑代码时可以随时向应用程序中加入变化而不需要像以前那样重新构建容器。我们还定义了依赖关系、环境变量和其他选项,以确保 Docker Compose 可以顺利地管理整个容器服务。