撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>>

如果我们有一个App,他由多个container组成,那么这个App的维护会非常繁琐。

包括:

  • 要从Dockerfile build image 或者 Docker hub拉取image
  • 要创建多个container
  • 要管理这些container(启动,停止,删除)

docker Compose的作用就是“批处理”。我们只需要一条命令,就可以管理多个容器的创建,停止删除。

Docker Compose是一个工具

这个工具可以通过一个yml文件定义多容器的docker应用

通过一条命令就可以根据yml文件的定义去创建或者管理这多个容器

如何写yml文件 ?

services

一个service代表一个container,这个container可以从docker hub的image来创建,或者从本地的Dockerfile build出来的image来创建。

service的启动类似docker run,我们可以给其指定network和volume, 所以可以给service指定etwork和volume的引用。

举例一:

services:db:image: postgres:9.4volumes:- "db-data:/var/lib/postgresql/data"networks:- back-tier

这句话类似于

docker run -d --name db  --network back-tier -v db-data:/var/lib/postgresql/data postgres:9.4

举例二:

services:worker:build: ./workernetworks:back-tier

这个是通过本地build的。

networks

volumes

举例:

version: '3'services:wordpress:image: wordpressports:- 8080:80environment:WORDPRESS_DB_HOST: mysqlWORDPRESS_DB_PASSWORD: rootnetworks:- my-bridgemysql:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: rootMYSQL_DATABASE: wordpressvolumes:- mysql-data:/var/lib/mysqlnetworks:- my-bridgevolumes:mysql-data:networks:my-bridge:driver: bridge

version: "3" 表示使用的docker Compose 版本是3

这个docker-compose.yml文件包含三部分:services,volumes,networks

services,定义了两个service分别是wordpress和mysql。wordpress 端口是80映射到8080,environment相当于-e选项,network表示链接的网络是my-bridge,这个网络在下面会有定义。mysql中的volume映射到mysql-data,这个volume在下面有定义。

从零开始学习docker(十一)介绍Docker Compose yml文件介绍相关推荐

  1. 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  2. [乐意黎转载]从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

    从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQu ...

  3. Apache Nutch 1.3 学习笔记十一(页面评分机制 LinkRank 介绍)

    下面是Google翻译的http://wiki.apache.org/nutch/NewScoring内容,是关于Nutch 新的链接分数算法的说明,有点类似于Google的PageRank,这里有其 ...

  4. 《STM32从零开始学习历程》——SPI物理层及FLASH芯片介绍

    <STM32从零开始学习历程>@EnzoReventon SPI物理层及FLASH芯片介绍 相关链接: SPI协议层 SPI特性及架构 SPI固件库 参考资料: [野火EmbedFire] ...

  5. [docker]十一、docker nfs服务

    目录 1.Swarm中使用Volume和NFS服务 1.1.为什么需要nfs服务器?nfs是什么?nfs解决了什么问题? 2.布置一台nfs服务器 2.1.客户机上能否有写的权限要看两种权限 2.2. ...

  6. JS学习笔记——高级编程中compose函数的介绍和基本实现

    1.前言 在之前探讨redux的中间件的时候,applyMiddleware源码中有遇到过compose()函数,当时不太明白起作用,所以就上网好好查了一下,做了个总结. 2.普通函数 在函数式编程当 ...

  7. Docker(十一):Docker实战 安装 PHP 5.6、7

    Docker 安装 PHP 安装 PHP 镜像 方法一.docker pull php 查找 Docker Hub 上的 php 镜像: 可以通过 Sort by 查看其他版本的 php,默认是最新版 ...

  8. 从零开始学习菜鸟晋级黑客之黑客之“名词介绍”

    1.肉鸡,或者留了后门,可以被我们远程操控的机器,现在许多人把有WEBSHELL权限的机器也叫肉鸡. 2.木马:特洛伊木马,大家在电影<特洛伊>里应该看到了,战争是特络伊故意留下了个木马, ...

  9. 前端学习(3253):react脚手架文件介绍

最新文章

  1. 从工程中删除Cocoapods
  2. 特征工程(二) :文本数据的展开、过滤和分块
  3. 记一次synchronized锁字符串引发的坑兼再谈Java字符串
  4. mybatis-plus 查询,删除
  5. python画五角星填充不同颜色_不同颜色牡丹怎么画?3种牡丹图解教你画,适合0基础学习,收藏...
  6. Highcharts之折线图
  7. linux与pc机网络通信,PC宿主机和目标机通信方式
  8. 研究生科研必备!!!2015-2020年各类国际会议基于图像的三维重建论文综述(1)——总览
  9. sklearn2pmml模型转化实践
  10. 【交易技术前沿】券商买方投顾系统建设实践
  11. 微信小程序如何跳转视频号直播间
  12. python雷达算法实现_基于Python的气象雷达工具包研究
  13. nodejs q模块
  14. BZOJ1921: [Ctsc2010]珠宝商(点分治+SAM)
  15. 怎么看计算机版本号,如何查看电脑windows版本号(查看电脑版本信息的11种方法)...
  16. 让插入PPT的音乐跨幻灯片后同时播放
  17. c语言的文法,c语言实现First文法
  18. html控制checkbox选中状态,怎么设置checkbox 选中状态
  19. html视频怎么转换成图片,WPS演示如何将图片转换成视频?
  20. SEO源码自建快排系统

热门文章

  1. Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案
  2. js选择日期即时把两个日期相差天数显示出来?
  3. SEO--我们是不是走错了路?
  4. 设计模式到底离我们有多远
  5. 动态生成HTML页面
  6. 130道ASP.NET面试题
  7. Python编译成C语言,性能有多暴力?
  8. kass中lisp文件,常见的Lisp-获取文件的路径
  9. java批量修改txt文件_Java小工具 根据文本批量修改文件名
  10. springboot 添加允许跨域_springboot设置cors跨域请求的两种方式