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