docker-compose 可将多个 “docker容器” 组成一组。这样它们就可以在一个隔离的环境中一起运行。
docker-compose: 可以用于定义一个组,方便于帮助运行多容器组的工具。它使用YAML文件来配置应用程序的服务,然后就可以用一个命令,从配置中创建并启动所有服务。
一般来说,把微服务 Docker 化后,在要想启动微服务的容器时,不得不手动逐个启动各个容器,服务多了以后,管理起来十分麻烦。用 docker-compose 来解决一些多容器管理的问题。
docker-compose 工具能直接用一个 docker-compose.yaml
来编排管理多个容器,可以设置各容器的 环境变量
,配置 service
配置项,就像 docker run
命令一样来启动容器。举个例子:
以前用 docker 命令管理容器:
$ docker run -p 50052:50051 \
-e MICRO_SERVER_ADDRESS=:50051 \
-e MICRO_REGISTRY=mdns \
vessel-service
等效于 docker-compose 来管理:
version: '3.1'
vessel-service:
build: ./vessel-service
ports:
- 50052:50051
environment:
MICRO_ADRESS: ":50051"
MICRO_REGISTRY: "mdns"
想加减和配置微服务,直接修改 docker-compose.yaml,十分方便。
使用 docker-compose 基本上是一个三步的过程:
参考上面的示例,可以看到:
编译,执行构建 可使用 docker-compose build 来编译生成三个对应的镜像;
运行 使用 docker-compose run 来运行指定的容器
后台运行 docker-compose up -d 可在后台运行;
列出项目中所有的容器 docker-compose ps [options] [SERVICE...]
停止 使用 docker stop $(docker ps -aq ) 来停止所有正在运行的容器。 或者直接: docker-compose stop
** 停止和删除容器** docker-compose down [options] 停止和删除容器、网络、卷、镜像。