docker~docker-compose和VS解决方案的关系

回到目录

一般地,我们在VS里添加了一个解决方案之后,会更新模块或者业务添加多个api,web项目,这类似于最近说的微服务,而我们的docker-compose与微软件正好有了一种默契,当你为你的解决方案添加docker支持之后,你会发布有个docker-compose出现了,它会把所有可以发布的项目都集成起来,进行管理,然后可以让你一键发布你的一批镜像,这里我们叫它"服务",这个服务我们可以删除,停止,运行它,非常方便!

  1. docker-compose和VS解决方案的关系
  2. docker-compose和VS与项目的关系
  3. Dockerfile与VS项目的关系
  4. docker-compose和Dockerfile的关系

大叔对docker-compose的认识

docker-compose和VS解决方案的关系

一个解决方案对应一个docker-compose项目,它由docker-compose.yml和它的子文件组件,子文件用来对它进行补充!

docker-compose和VS与项目的关系

一个docker-compose包括了所有可以发布的项目,这些项目在compose里被称为一个服务!

Dockerfile与VS项目的关系

一个Dockerfile对应一个具体的项目,可以是网站,API,控制台程序等,主要对它们进行发布,运行等!

docker-compose和Dockerfile的关系

一个docker-compose会包括多个Dockerfile,而每个Dockerfile对应于一个镜像,也就是说,很多镜像组件了一个服务,一个docker-compose,我们可以按着自己的规则去划分服务,docker-compose最小管理单元是"服务"!

具体例子

docker-compose.yml

version: '2'

services:
  coremvc1.1:
    image: coremvc1.1
    build:
      context: ./coreMvc1.1 #Dockerfile所在的目录
      dockerfile: Dockerfile  #文件

  shop:
    image: shop
    build:
      context: ./Shop
      dockerfile: Dockerfile

docker-compose.override.yml对原文件进行功能的补充

version: '2'

services:
  coremvc1.1:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"

  shop:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"

然后把整个解决方案发布一个,复制到你的linux环境里

执行docker-compose build 生成服务,就是一批镜像,通过docker-compose images可以查看它们

当生成成功后,执行docker-compose up 运行服务,就是运行这些容器,然后docker ps或者docker-compose ps 可以查看正在运行的容器

从上面的图中可以看到,这个服务包括了两个容器,它们分别监听了81和82端口,而自己程序端口都是5000,这也是默认的!

有时,觉得微软,vs2017为开发者考虑的太到位了,呵呵! 

感谢各位的阅读!

 回到目录

 

posted @ 2017-07-24 16:47  张占岭  阅读(2924)  评论(0编辑  收藏  举报