`
m635674608
  • 浏览: 5062442 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Docker Compose文件详解 V2

 
阅读更多
Compose file reference
 
语法:
 
web:
     build: ./web
     ports:
     - "5000:5000"
     volumes:
     - .:/code
     links:
     - redis
redis:
     image:redis
 
build:可使用相对目录或绝对目录
ports:可使用端口范围
links:可使用别名,例如: -redis:web-redis
 
build
 
 
build: ./dir
# build后可直接接Dockerfile所在目录,该目录必须存在Dockerfile
 
build:
  context: ./dir
  dockerfile: Dockerfile-alternate
  args:
    buildno: 1
image: webapp:tag
# contest指定Dockerfile的目录。dockerfile指定Dockerfile文件名
# args:不清楚
# images:指定dockerfile构建出的镜像名,默认使用docker-compose.yml所在的文件夹名+service名
 
context
build:
  context: ./dir
#指定Dockerfile所在的目录
 
dockerfile
build:
  context: .
  dockerfile: Dockerfile-alternate
 
build: .
dockerfile: Dockerfile-alternate
# 当Dockerfile文件名不是默认名称时,使用dockerfile参数指定Dockerfile的文件名
 
args
 
 
cap_add, cap_drop
Add or drop container capabilities. See man 7 capabilities for a full list.
cap_add:
  - ALL
 
cap_drop:
  - NET_ADMIN
  - SYS_ADMIN
 
command
覆盖Dockerfile中的command
 
command: bundle exec thin -p 3000
# 类似于dockerfile中的命令:
command: [bundle, exec, thin, -p, 3000]
 
 
 
container_name
 指定容器的名称
container_name: my-web-container
depends_on
表示服务之前的依赖关系,有两个效果:
  • docker-compose up,启动web服务之前、启动redis、db。
  • docker-compose up web,启动web容器时,检查依赖depends_on的配置内容,先启动db和redis
version: '2'
services: 
web:
   build: .
    depends_on:
       - db
      - redis
  redis:   
     image: redis
 db:   
    image: postgres
dns
自定义DNS,可以是单个的,也可以是列表.
dns: 8.8.8.8
dns:
  - 8.8.8.8
  - 9.9.9.9

dns_search

Custom DNS search domains. Can be a single value or a list.

dns_searchexample.com
dns_search:
  - dc1.example.com
  - dc2.example.com
tmpfs
在容器中挂载一个tmpfs。
tmpfs可以理解成虚拟机磁盘,是创建在内存上,不是在硬盘上。读取速度快,重启后数据消失
tmpfs: /run
tmpfs:
  - /run
  - /tmp
entrypoint
覆盖默认的entrypoint.
entrypoint: /code/entrypoint.sh
可以是个列表,类似dockerfile中的语法
entrypoint:
    - php
    - -d
    - zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
    - -d
    - memory_limit=-1
    - vendor/bin/phpunit
env_file
指定变量的文件,默认为docker-compose文件夹下的 .env 文件.
同一个变量,通过export设置,会覆盖env_file中的变量.
env_file: .env

env_file:
  - ./common.env
  - ./apps/web.env
  - /opt/secrets.env
environment
设置环境变量,支持数组和字典.
environment:
  RACK_ENV: development
  SHOW: 'true'
  SESSION_SECRET:

environment:
  - RACK_ENV=development
 - SHOW=true
 - SESSION_SECRET
expose
暴漏端口,并不会暴漏到宿主机上,而是提供给内部容器通信.
expose:
 - "3000"
 - "8000"
extends、
external_links
待补充
 
extra_hosts
添加主机映射. Use the same values as the docker client --add-host parameter.
extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"
映射结果会体现在 /etc/hosts :
162.242.195.82  somehost
50.31.209.229   otherhost
image
指定基础镜像. 可以是镜像名称、镜像ID。
version1中不允许build和image同时出现,version2中允许,image代表指定build之后的镜像名称。
image: redis
image: ubuntu:14.04image: tutum/influxdb
image: example-registry.com:4000/postgresql
image: a4bc65fd
labels
指定容器的标签.
labels:
  com.example.description: "Accounting webapp"
  com.example.department: "Finance"
  com.example.label-with-empty-value: ""

labels:
  - "com.example.description=Accounting webapp"
  - "com.example.department=Finance"
  - "com.example.label-with-empty-value"
links
连接其他容器,可以设置别名,设置link之后,hostname与IP的对应关系会写入到 /etc/hosts中. 和depend_on类似,设置link后,也间接的规定了容器的启动顺序.
web:
  links:
  - db
  - db:database - redis
logging
设置容器的日志驱动.version 2 通过logging替换log_driver和log_opt
logging:
  driver:syslog
 options:
   syslog-address: "tcp://192.168.0.42:123"

net

Version 1 file format only. In version 2, use network_mode.
为容器指定网络类型,version 1专用,version 2使用network_mode.
net: "bridge"
net: "host"
net: "none"
net: "container:[service name or container name/id]"

network_mode

Version 2 file format only. In version 1, use net.
为容器指定网络类型.
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"

networks

Version 2 file format only. In version 1, use net.

Networks to join, referencing entries under the top-level networks key.
services:
  some-service:
    networks:
     - some-network
     - other-network
aliases
待补充
ipv4_address, ipv6_address
指定容器的IP地址等,用法待补充,未操作
 
pid
通过设置,容器可通过ps查询宿主机的进程.
pid: "host"
ports
暴漏容器的端口,可设置为8080:8080 或 :8080(宿主机端口随机).
Note:建议使用引号
ports:
 - "3000"
 - "3000-3005"
 - "8000:8000"
 - "9090-9091:8080-8081"
 - "49100:22"
 - "127.0.0.1:8001:8001"
 - "127.0.0.1:5000-5010:5000-5010"
stop_signal
待补充
ulimits
设置ulimit值,可替换掉docker或dockerfile默认的值.
ulimits:
  nproc: 65535
  nofile:
    soft: 20000
    hard: 40000
volumes, volume_driver
挂载卷,如果不指定宿主机目录,会在volume默认目录创建挂载点。可单独挂载文件、可设置目录权限.  。
volumes:
  # Just specify a path and let the Engine create a volume
  - /var/lib/mysql

  # Specify an absolute path mapping
  - /opt/data:/var/lib/mysql

  # Path on the host, relative to the Compose file
  - ./cache:/tmp/cache

  # User-relative path
  - ~/configs:/etc/configs/:ro

  # Named volume
  - datavolume:/var/lib/mysql    # datavolume是通过docker volume create --name datavolume创建
如果不使用宿主机存储,须臾奥指定 volume_driver.例如rancher的convoy fs。
volume_driver: mydriver
volumes_from
从其他服务或容器挂载所有的volume, 可设置制度访问 (ro)或读写 (rw). 如果不设置,默认为读写模式。
volumes_from:
 - service_name
 - service_name:ro
 - container:container_name
 - container:container_name:rw

Note: The Container:... formats are only supported in the version 2 file format. In version 1, you can use container names without marking them as such:

- service_name
- service_name:ro
- container_name
- container_name:rw

cpu_shares, cpu_quota, cpuset, domainname, hostname, ipc, mac_address, mem_limit, memswap_limit, privileged, read_only, restart, shm_size, stdin_open, tty, user, working_dir

单独的值,类似于docker run的参数.
cpu_shares: 73
cpu_quota: 50000
cpuset: 0,1
 
user: postgresql
working_dir: /code
 
domainname: foo.com
hostname: foo
ipc: host
mac_address: 02:42:ac:11:65:43
 
mem_limit: 1000000000
memswap_limit: 2000000000
privileged: true
 
restart: always
 
read_only: true
shm_size: 64M
stdin_open: true
tty: true
Volume configuration reference
driver
设置volume的驱动,默认是local.
 driver: foobar
driver_opts
设置驱动的参数,不同的驱动所需要的参数不同.可选.
 driver_opts:
   foo: "bar"
   baz: 1
external
如果设置为true,指定volume在compose的外部,docker-compose up 时不去创建该volume。如果不存在报错.
version: '2'
 
services:
  db:
    image: postgres
    volumes:
      - data:/var/lib/postgresql/data
 
volumes:
  data:
    external: true

You can also specify the name of the volume separately from the name used to refer to it within the Compose file:

 
volumes:
  data:
    external:
      name: actual-name-of-volume
A more extended example, defining volumes and networks:
version: '2'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    volumes:
     - .:/code
    networks:
      - front-tier
      - back-tier
  redis:
    image: redis
    volumes:
      - redis-data:/var/lib/redis
    networks:
      - back-tier
volumes:
  redis-data:
    driver: local
networks:
  front-tier:
    driver: bridge
  back-tier:
    driver: bridge
 
 
 
version: '2'
services:
  db:
    image: postgres
    volumes:
      - data:/var/lib/postgresql/data
volumes:
  data: {}
http://blog.csdn.net/wanghailong041/article/details/52162275
http://blog.csdn.net/gezhonglei2007/article/details/51627969
分享到:
评论

相关推荐

    walle发布平台部署.docx

    使用Docker Compose启动walle服务:`docker-compose up -d`,然后通过`docker-compose logs -f`查看日志以确保服务正常运行。 参考文档:[Python3 安装教程](https://www.linuxidc.com/Linux/2018-07/153286.htm) ...

    修改已经运行的docker容器的端口映射.doc

    **注意**:某些情况下,除了`hostconfig.json`之外,还需要检查`config.v2.json`文件中是否也有端口映射的相关配置。如果存在,也需要进行相应的修改。 **第四步:重新启动Docker服务** 完成配置文件的修改后,...

    一个简单易用的在线 PDF 合并工具,可以将多个 PDF 文件合并成一个文件,并支持通过拖拽调整合并顺序

    一个简单易用的在线 PDF 合并工具,可以将多个 PDF 文件合并成一个文件,并支持通过拖拽调整合并顺序

    上市公司-创新韧性数据(2007-2023年).dta

    上市公司的创新能力,彰显于它持续研发新技术、新产品及服务的实力之中,这是维系其市场竞争优势的核心所在。质量方面,它体现为公司提供的产品或服务达到卓越标准的程度,高质量不仅是获取客户信赖与扩大市场份额的基石,也是企业信誉的保障。至于效率,它则囊括了生产运营过程中的资源优化配置与成本控制能力,高效运作能够助力企业削减不必要的损耗,提升生产效能与市场响应速度,从而在竞争激烈的市场环境中稳固并扩大其优势地位。因此,创新能力、质量以及效率,这三者共同构成了推动上市公司持续发展与壮大的核心动力源泉。 数据名称:上市公司-创新能力、创新质量、创新效率数据 数据年份:2006-2023年 ## 02、相关数据 代码 年份 股票简称 中文全称 省份 城市 区县 行业代码 行业名称 证券简称 是否发生ST或ST或PT 是否发生暂停上市 成立日期 上市日期 企业性质 所属省份 所属城市 研发人员数量 研发人员数量占比 RD RDsz RDincome LRDsz LRDincome RD_inc RD_Dum LnRD 专利1 专利2 专利3 专利4 Patent1 Patent2 Patent3

    【9493】基于springboot+vue的美食信息推荐系统的设计与实现.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    2023个股流动性.dta

    股票流动性是指股票在市场上被买卖的容易程度和速度,即投资者能够在不造成显著价格变动的情况下迅速买卖股票的能力。 Amihud指标结果这是一个衡量股票流动性的指标,为股票在一段时间的收益率与交易额的比值的负对数值。如果股票交易量的变动会带来股价的剧烈波动(暴涨暴跌),则Amihud指标越大,股票流动性越差;反之,如果交易量的变化对股价变化的影响越小,则说明股票的流动性较好。由于这是一个计算结果,因此需要根据实际的股票交易数据来计算。 数据名称:上市公司-股票流动性指标 数据年份:2000-2023年 ## 02、相关数据 stkcd、年份、证券代码、Amihud指标结果、交易天数。

    基于SSM+JWT实现前后端分离的token验证的demo.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    价值600元的全网火爆的ChatGPT小程序页面模板,让AI回答你的任何问题!

    ChatGPT 是 OpenAI 开发的一款专门从事对话的人工智能聊天机器人原型。聊天机器人是一种大型语言模型,采用监督学习和强化学习技术。ChatGPT 于 2022 年 11 月推出,尽管其回答事实的准确性受到批评,但因其详细和清晰的回复而受到关注。ChatGPT 使用监督学习和强化学习在 GPT-3.5 之上进行了微调和升级。ChatGPT的相关模型是OpenAI与微软合作在其 Azure 超级计算基础设施上进行训练的。ChatGPT 的训练数据包括手册页、互联网现象和编程语言的知识,例如公告板系统和 Python 编程语言。 功能: 写作 绘画 聊天 唱歌 跳舞 地表最强大的AI,无所不能,目前持续火爆全网,感兴趣的可以尝试深入研究下。

    【9484】基于springboot+vue的扶贫助农系统--lw.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    使用ssm框架实现的人力资源管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    Python 实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测(含模型描述及示例代码)

    内容概要:本文详细介绍了如何使用Python实现一种结合了蛇群算法(SO)、卷积神经网络(CNN)和长短期记忆网络(LSTM)的深度学习模型,以提高多输入单输出回归预测的精度。首先阐述了项目背景和目的,强调了传统机器学习方法在处理复杂时序数据中的不足之处,并提出了深度学习模型的应用前景。接着讨论了项目的技术难点和技术解决方案,特别是超参数优化和自动化训练过程,并通过具体的案例展示了其有效性。最后给出了详细的模型构建步骤和代码样例,便于后续的实操演练。 适用人群:数据科学家、机器学习工程师和其他希望深入了解如何结合优化算法和深度学习模型的人士,最好有一定的深度学习基础知识和实践经验。 使用场景及目标:适用于涉及时间序列分析和预测的实际应用场景,包括但不限于金融市场预测、气候变化预测、能源需求预测和医疗健康预测等。目标是提高这些领域的预测精度和模型性能,为企业和个人决策提供更好的支持。 其他说明:本文提供了完整的模型构建指导及代码示例,帮助使用者理解每个组件的作用,尤其是如何结合不同类型的模型以及优化算法。对于想要深入研究相关主题或者实际操作此模型的学习者而言,是非常宝贵的参考资料。

    英文文献阅读指令【指令+教程+视频】.zip

    英文文献阅读指令【指令+教程+视频】.zip

    使用QT+C++搭建的一个基础的本地视频播放器, 基于qmake构建, qt creator实现.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    react integrate with wangditor

    富文本编辑器,Richtext,wangeditor

    OFDM系统降低PAPR算法(PTS、SLM与C变换技术)MATLAB仿真代码实现及性能评估,OFDM系统降低PAPR算法(PTS、SLM与C变换技术)完美运行MATLAB仿真代码,ofdm系统降低P

    OFDM系统降低PAPR算法(PTS、SLM与C变换技术)MATLAB仿真代码实现及性能评估,OFDM系统降低PAPR算法(PTS、SLM与C变换技术)完美运行MATLAB仿真代码,ofdm系统降低PAPR代码,可完美运行。 降低OFDM系统PAPR算法(PTS-SLM-C变)MATLAB仿真(有PTS、SLM、C变三种算法的CCDF仿真) 直接拿即可 仿真软件版本: matlab2012a ,ofdm系统; 降低PAPR代码; PTS算法; SLM算法; C变换算法; MATLAB仿真; CCDF仿真; matlab2012a,OFDM系统PAPR降低:PTS、SLM与C变换算法的MATLAB仿真研究

    【9491】基于springboot+vue的餐厅点餐管理系统.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    Apache:Apache的安装与配置:2. Linux环境下Apache安装与基础配置.pdf

    Apache:Apache的安装与配置:2. Linux环境下Apache安装与基础配置.pdf

    python-6.列表去重-那set一下?.py

    python-6.列表去重——那set一下?.py

    MIG熔滴过渡与熔池耦合效应:一脉一滴的脉冲电流电压实现技术及二维数值模拟全攻略,涵盖UDF建模、设置教程及Fluent焊接应用解析,Mig熔滴过渡与熔池耦合控制技术-基于脉冲电流电压一脉一滴的二维

    MIG熔滴过渡与熔池耦合效应:一脉一滴的脉冲电流电压实现技术及二维数值模拟全攻略,涵盖UDF建模、设置教程及Fluent焊接应用解析,Mig熔滴过渡与熔池耦合控制技术——基于脉冲电流电压一脉一滴的二维数值模拟教程,包含UDF建模与设置指南,适用于Fluent焊接仿真研究。,mig熔滴过渡与熔池耦合,加脉冲电流电压实现一脉一滴,二维数值模拟全套教程,包括udf,建模,设置教程,fluent焊接相关 ,mig熔滴过渡;熔池耦合;一脉一滴;脉冲电流电压;二维数值模拟;UDF建模;设置教程;焊接相关。,《焊接技术:MIG熔滴过渡与熔池耦合模拟教程》

    柚子抽奖送礼平台V1.3.3.zip

    小程序 柚子抽奖送礼平台V1.3.3 小程序前端 后端 更新动态: 版本号:1.3.3 – 营销版 1、新增每日精选自定义排序 2、新增页面没有抽奖活动数据时自定义图片 3、优化后台页面 4、修复公告开关 5、修复版权信息开关 6、优化系统设置:帮助中心-帮助列表排序 备注:需更新小程序前端

Global site tag (gtag.js) - Google Analytics