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
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
相关推荐
使用Docker Compose启动walle服务:`docker-compose up -d`,然后通过`docker-compose logs -f`查看日志以确保服务正常运行。 参考文档:[Python3 安装教程](https://www.linuxidc.com/Linux/2018-07/153286.htm) ...
**注意**:某些情况下,除了`hostconfig.json`之外,还需要检查`config.v2.json`文件中是否也有端口映射的相关配置。如果存在,也需要进行相应的修改。 **第四步:重新启动Docker服务** 完成配置文件的修改后,...
即时通讯_分布式系统_WebSocket_Golang_Redis_MySQL_RabbitMQ_Gin_Logrus_Docker_微服务架构_高并发_消息队列_实时聊天_多节点
内容概要:本文详细介绍了如何使用STM32实现步进电机的精确运动控制,涵盖梯形加减速算法、绝对定位、相对定位和回原点功能。文章首先解释了绝对定位和相对定位的区别及其应用场景,接着深入探讨了梯形加减速算法的具体实现方法,包括动态选择梯形或三角形速度曲线以适应不同的运动距离。文中还提供了详细的回原点逻辑,确保电机能够安全可靠地返回起始位置。此外,文章讨论了运动控制状态机的设计,强调了定时器中断和服务函数的作用,以及如何通过DMA提高系统的稳定性和效率。最后,作者分享了一些实用的经验和注意事项,如定时器配置、加减速参数设置和硬件接口设计。 适合人群:对嵌入式系统和运动控制感兴趣的开发者,尤其是有一定STM32编程基础的技术人员。 使用场景及目标:适用于需要高精度步进电机控制的应用场合,如工业自动化设备、机器人等领域。主要目标是帮助读者掌握STM32在步进电机控制方面的核心技术,包括但不限于梯形加减速、定位控制和回原点等功能。 其他说明:文章不仅提供了理论讲解,还附有大量实际代码片段,便于读者理解和实践。同时,作者分享了许多实战经验和常见问题的解决方案,有助于读者避开潜在的陷阱并提高项目的成功率。
内容概要:本文深入探讨了西门子PLC 1200与G120变频器通过Modbus RTU通讯的实现方法,涵盖硬件连接、软件配置、变频器参数设置、PID自写FB块及其手动自动切换功能、触摸屏交互设计以及CAD电气的应用。具体介绍了Modbus RTU通讯的初始化配置、报文格式、PID控制算法的手动自动无扰切换、触摸屏参数映射和动态站号切换等功能。同时提供了详细的代码示例和调试建议,强调了参数设置、实数转换、PID抗饱和等注意事项。 适合人群:从事工业自动化领域的工程师和技术人员,特别是熟悉西门子产品并有一定PLC编程基础的人群。 使用场景及目标:适用于需要构建基于西门子PLC 1200和G120变频器的自动化控制系统的企业和个人开发者。主要目标是掌握Modbus RTU通讯协议的具体实现细节,理解PID控制算法的工作原理,并能够独立完成系统的集成和调试。 其他说明:文中不仅提供了理论知识,还包括大量实战经验和常见问题的解决方案,有助于提高读者的实际操作能力。此外,还涉及了CAD电气图纸的绘制,为项目的整体规划和后续维护提供了指导。
内容概要:本文详细介绍了COMSOL利用二阶偏微分方程(PDE)进行煤层气开采过程中压力场模拟的方法及其显著优势。传统方法通常采用达西定律简化为一阶方程,而COMSOL则通过自定义二阶PDE,将渗透率作为动态参数,并引入非线性的解吸过程和复杂的边界条件,从而更精确地模拟了煤层内的压力变化。文中展示了具体的MATLAB代码片段,解释了如何配置模型以及处理边界条件,强调了二阶PDE在捕捉压力场细节方面的优越性能。此外,文章还提到了一些实际案例,如瓦斯涌出量预测精度提高37.6%,裂隙区压力衰减速度误差控制在8%以内等。 适合人群:从事煤层气开采研究的专业人士、数值模拟工程师、地质力学专家。 使用场景及目标:适用于需要高精度模拟煤层气开采过程中复杂压力场变化的研究项目,旨在提升预测准确性,优化开采方案,减少事故风险。 其他说明:尽管二阶PDE提供了更高的精度,但也增加了模型复杂性和计算成本。因此,在具体应用时需权衡精度与效率之间的关系。同时,良好的网格划分对于获得稳定可靠的解决方案至关重要。
可再生能源_光伏发电_物联网大数据云计算_SpringBoot_Vue_ElementUI_Redis_Jwt_XXLJob_Netty_时序数据库_关系型数据库_智能监测_数据采
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
31 android 加载时闪烁点样式的启动画面
GDF103C8T6的PCB制版文件
内容概要:本文详细介绍了如何使用MATLAB构建一个自动化的裂缝检测系统。首先进行图像预处理,包括直方图均衡化、中值滤波去除噪声以及对比度增强。接着通过自适应二值化将图像转换为黑白图像,并采用形态学处理和边缘检测进一步优化图像质量。最后,利用regionprops函数提取裂缝的几何特征,如面积、长轴和短轴长度等,从而实现裂缝的自动检测和分类。文中强调了每个步骤的关键技术和参数选择,并提供了具体的MATLAB代码示例。 适合人群:从事图像处理、计算机视觉领域的研究人员和技术人员,尤其是对裂缝检测感兴趣的工程师。 使用场景及目标:适用于建筑、道路等基础设施的维护检查,能够快速准确地检测并评估裂缝情况,提高工作效率和准确性。 其他说明:作者分享了许多实践经验,指出了一些常见的陷阱和注意事项,帮助读者更好地理解和应用这些技术。同时,文中提到该系统的识别率可达89%,并且可以根据不同应用场景调整参数以满足特定需求。
内容概要:本文详细介绍了如何利用蚁狮优化算法(ALO)和核极限学习机(KELM)在MATLAB环境下进行电厂运行数据的回归预测。首先,文章解释了ALO算法的工作原理,它通过模拟蚁狮捕猎行为来优化KELM的超参数,从而提高预测准确性。接着,阐述了数据预处理步骤,包括从Excel文件读取数据、归一化处理以及特征选择。然后,深入探讨了KELM的核函数选择和训练过程,并提供了具体的MATLAB代码片段用于实现整个流程。最后,展示了该方法在实际案例中的表现,特别是在某330MW机组上的应用,证明了其优越性。 适合人群:具有一定MATLAB编程基础并对机器学习感兴趣的工程师和技术人员。 使用场景及目标:适用于电力行业或其他涉及复杂非线性系统的领域,旨在解决多参数耦合强的问题,提供高效准确的预测解决方案。 其他说明:文中提到的一些技巧如数据清洗、参数调整等对于获得更好的预测效果至关重要。此外,作者还分享了一些实用的经验教训,帮助读者避开常见错误并优化模型性能。
无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失
内容概要:本文深入探讨了4x4码垛机械手的组态设计,涵盖从基础的坐标系转换、路径规划到高级的异常处理等多个方面。首先介绍了关键坐标系转换,确保机械手能够精确地定位物料。接着详细讲解了路径规划,尤其是贝塞尔曲线的应用,使机械臂可以平滑移动并避开障碍物。此外,还讨论了夹爪控制、动态压力调整以及状态保存机制等重要环节。文中强调了调试过程中的注意事项,如坐标系校准、伺服电机反向间隙补偿等,并提供了具体的代码示例。最后指出,成功的组态设计不仅需要扎实的编程技能,还需要对机械结构有深刻的理解。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对码垛机械手感兴趣的研发人员。 使用场景及目标:适用于希望深入了解码垛机械手工作原理及其组态设计的人群。主要目标是帮助读者掌握4x4码垛机械手的设计要点,提高实际项目中的开发效率和成功率。 其他说明:文章通过大量实例和代码片段展示了各个知识点的实际应用场景,有助于读者更好地理解和吸收相关概念。同时提醒读者在进行组态设计时要考虑多种因素的影响,如物理特性和机械结构等。
内容概要:本文详细介绍了如何利用 Carsim 和 Simulink 实现弯道场景下的车辆变道仿真。首先,通过路径规划算法生成符合车辆动力学特性的期望路径,接着采用 MPC(模型预测控制)算法确保车辆能够精确跟踪这条路径。文中不仅展示了具体的数学模型和 MATLAB/Simulink 代码片段,还讨论了联合仿真的配置要点和常见问题解决方案。最终,通过可视化工具展示规划路径与实际行驶路径的对比,帮助研究人员更好地分析和验证仿真结果。 适合人群:从事自动驾驶、智能交通系统研究的技术人员,尤其是对车辆控制算法感兴趣的工程师。 使用场景及目标:适用于需要进行车辆变道仿真测试的研究机构或企业,旨在提升车辆在复杂路况下的自主驾驶能力。具体目标包括:①掌握路径规划算法的设计与实现;②理解MPC在轨迹跟踪中的应用;③熟悉 Carsim 和 Simulink 的联合仿真环境配置。 其他说明:文章提供了丰富的代码示例和技术细节,有助于读者深入理解每一步骤的具体实现方式。此外,作者还分享了一些实践经验,如参数调优技巧和常见的仿真陷阱规避方法。
在原来的版本增加论坛聊天等功能,修复软件区显示问题,优化部分功能。
内容概要:本文详细介绍了永磁同步电机(PMSM)三矢量模型预测转矩控制的Matlab仿真方法。首先解释了为何降低转矩脉动和定子电流谐波对于提高电机性能至关重要。接着,文章逐步解析了坐标变换、预测模型和优化算法等关键模块的具体实现方式,展示了如何通过三矢量控制策略显著改善电机性能。文中还讨论了一些实用的技术细节,如矢量选择、时间分配以及代价函数设计,并通过仿真结果验证了该方法的有效性。 适合人群:从事电机控制系统设计的研究人员、工程师及高校相关专业师生。 使用场景及目标:适用于希望深入了解PMSM先进控制策略的研发团队,旨在提升电机控制系统的稳定性、效率和平顺性,减少转矩脉动和电流谐波,从而延长设备使用寿命并提高能源利用效率。 其他说明:文章不仅提供了详细的理论推导和代码示例,还分享了许多实践经验,有助于读者快速掌握这一复杂但高效的控制技术。此外,文中提到的部分模块还可以灵活应用于其他类型的预测控制中。
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文介绍了基于C#编写的工业互联网云服务器框架,该框架集成了Web API服务和MQTT服务器,充分利用了C#的IOCP高性能高并发优势。框架不仅提供了丰富的功能,如数据库支持、WEB API服务、多种协议支持、MVC服务、设备轮询机制、API接口功能等,还具备良好的扩展性和易用性。文中展示了具体的代码示例,解释了框架的核心技术和实现细节,并介绍了框架的升级内容及其应用场景。 适合人群:具备一定编程基础,尤其是熟悉C#和ASP.NET Core的开发人员,以及从事工业互联网项目的工程师。 使用场景及目标:适用于需要构建高效、稳定的工业互联网云服务器的应用场景,帮助开发者快速搭建工业设备的数字化管理和远程控制系统,提高系统的并发处理能力和响应速度。 其他说明:框架提供了详细的使用说明和技术支持,确保开发者能够顺利地进行开发和部署。尽管某些底层源码未公开,但开放的事件接口和灵活的配置选项仍然允许开发者进行深度定制。
内容概要:本文介绍了一个基于 .NET 6 和 WPF 开发的自用工具,该工具结合了 ReactiveUI 和 OpenCVSharp 技术,旨在提供一个集图像处理、3D 点云数据展示和深度学习目标识别于一体的综合平台。文中详细讲解了如何使用 ReactiveUI 实现响应式编程,通过 OpenCVSharp 进行图像处理和目标检测,并展示了如何利用 Helix Toolkit 显示 3D 点云数据。此外,作者分享了许多实际编码技巧和遇到的问题及其解决方案,如处理内存泄漏、优化 UI 更新等。 适合人群:对 .NET 6、WPF、ReactiveUI、OpenCVSharp 和 3D 数据处理感兴趣的开发者和技术爱好者。 使用场景及目标:① 探索和学习 ReactiveUI 在 WPF 中的应用;② 实现高效的图像处理和调试;③ 展示和处理 3D 点云数据;④ 集成深度学习模型进行目标识别。 其他说明:该项目不仅是一个技术实验,也是一个实用工具,能够帮助开发者更好地理解和掌握多种技术的融合应用。