前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 学习笔记3 - docker-compose(编排) 简介

Docker 学习笔记3 - docker-compose(编排) 简介

作者头像
张云飞Vir
发布2020-04-09 15:43:25
4570
发布2020-04-09 15:43:25
举报
文章被收录于专栏:写代码和思考

0. 背景

docker-compose 可将多个 “docker容器” 组成一组。这样它们就可以在一个隔离的环境中一起运行。

1. 介绍

docker-compose: 可以用于定义一个组,方便于帮助运行多容器组的工具。它使用YAML文件来配置应用程序的服务,然后就可以用一个命令,从配置中创建并启动所有服务。

一般来说,把微服务 Docker 化后,在要想启动微服务的容器时,不得不手动逐个启动各个容器,服务多了以后,管理起来十分麻烦。用 docker-compose 来解决一些多容器管理的问题。

yaml 文件

docker-compose 工具能直接用一个 docker-compose.yaml 来编排管理多个容器,可以设置各容器的 环境变量 ,配置 service 配置项,就像 docker run 命令一样来启动容器。举个例子:

以前用 docker 命令管理容器:

代码语言:javascript
复制
$ docker run -p 50052:50051 \
  -e MICRO_SERVER_ADDRESS=:50051 \
  -e MICRO_REGISTRY=mdns \
  vessel-service

等效于 docker-compose 来管理:

代码语言:javascript
复制
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 基本上是一个三步的过程:

  • (1)为各个子服务编写Dockerfile
  • (2)编写docker-compose文件:在docker-compose中定义组成应用程序的服务。这样它们就可以在一个隔离的环境中一起运行。
  • (3)运行docker-compose up和Compose started并运行整个应用程序。

内容说明

参考上面的示例,可以看到:

  • version 关键字:指定了 docker-compose 的版本是 3.1
  • services: 使用 services 来定义多个服务,每个微服务都定义了自己容器的名字
  • build 指定目录下的 Dockerfile 将会用来编译镜像
  • 环境变量指定了容器的端口映射规则、环境变量等。

常用指令

编译,执行构建 可使用 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] 停止和删除容器、网络、卷、镜像。

2. 参考

https://docs.docker.com/compose/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 背景
  • 1. 介绍
    • yaml 文件
      • 使用 docker-compose 的步骤
        • 内容说明
          • 常用指令
          • 2. 参考
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档