当前位置: 首页 > news >正文

S7 adapter Docker run

你的 Dockerfile 已经定义了:

VOLUME ["/config", "/logs"] ENTRYPOINT ["python", "/app/app.py"] CMD ["/config/config.json", "default_string"]

你的 Python 程序需要:

parser.add_argument("config")parser.add_argument("rediskey")

也就是运行时等价:

python /app/app.py /config/config.json default_string

关键点就是:把宿主机的配置文件挂载到容器的 /config 目录。


一、标准正确的 docker run 方法

假设宿主机配置文件:

/data/config.json

运行:

dockerrun-d\-v/data/config.json:/config/config.json\-v/data/logs:/logs\myimage

这样容器内:

/config/config.json ← 实际来自宿主机 /logs ← 日志目录

你的程序就能读取:

/config/config.json

二、更推荐方式(挂整个目录)

生产环境更推荐:

dockerrun-d\-v/data/config:/config\-v/data/logs:/logs\myimage

目录结构:

宿主机:

/data/config/config.json

容器:

/config/config.json

这样以后增加配置不用改 docker run。

这是最佳实践 ⭐


三、如果要修改 rediskey 参数

可以覆盖 CMD:

例如:

dockerrun-d\-v/data/config:/config\-v/data/logs:/logs\myimage\/config/config.json myrediskey

实际执行:

python /app/app.py /config/config.json myrediskey

因为:

ENTRYPOINT 不变
CMD 被替换。


四、推荐生产运行方式

完整示例:

dockerrun-d\--nameplc_app\--restartalways\-v/data/plc/config:/config\-v/data/plc/logs:/logs\myimage\/config/config.json plc_process_01

这样:

容器重启自动启动
日志持久化
配置外置。


五、如何确认容器看到文件

进入容器:

dockerexec-itplc_appbash

查看:

ls/configcat/config/config.json

如果能看到说明 OK。


六、常见错误(90%的人踩坑)

错误1

这样写:

-v/data/config.json:/config

这是错误的,因为:

左边是文件
右边是目录。

必须:

-v/data/config.json:/config/config.json

错误2 权限问题

如果程序报:

Permission denied

执行:

chmod644/data/config/config.jsonchmod755/data/config

或者:

chmod-R777/data/config

(测试用)


七、企业级推荐写法(最干净)

Dockerfile:

ENTRYPOINT ["python", "/app/app.py"]

不要 CMD。

运行:

dockerrun-d\-v/data/config:/config\-v/data/logs:/logs\myimage\/config/config.json plc01

更清晰。


八、更专业的做法(如果是工业PLC项目推荐)

建议改成:

支持环境变量:

importos config=os.getenv("CONFIG_FILE","/config/config.json")rediskey=os.getenv("REDIS_KEY","default")

docker run:

dockerrun-d\-v/data/config:/config\-eCONFIG_FILE=/config/config.json\-eREDIS_KEY=plc01\myimage

工业项目基本都这样做。

更安全、更可维护。


实际run

dockerrun-d--names7_l1-v/opt/s7/l1/config_192.168.10.101.json:/config/config.json-v/opt/s7/l1/logs:/logs--networkwaston--restartalways s7_adapter:v1.0
http://www.jsqmd.com/news/611131/

相关文章:

  • 2026年口碑好的成都信息化测试/信息化实力公司推荐 - 行业平台推荐
  • 深入解析dify中的TF-IDF与余弦相似度在RAG重排序中的应用
  • RVC在元宇宙中的应用:虚拟人实时语音驱动、跨平台声纹同步
  • MiniCPM-V-2_6法律文书理解:合同条款识别+风险点标注效果展示
  • 从源码视角看OnlyOffice Connector:企业版与社区版功能差异深度解析与二次开发选型建议
  • 海外游戏SEO实战:巴西/印度市场引流经验与项目合作
  • [架构解析] 电商矩阵的“防盗门”:用独立定制 RPA 与底层群控实现员工隔离与核心 SOP 保密
  • Python爬虫终极提速:异步IO(asyncio+aiohttp)优化,比多线程还快4倍
  • 【开源】从设计文档到可交付技术交底书:专利.Skill
  • 前端设计融合:忍者像素绘卷:天界画坊生成UI/UX素材实战
  • 企业内推码寻求,助力获取奖励金,助力大家求职,实现双赢
  • 单模型时代结束了,多模型切换才是未来工作流
  • 煤化工行业实时空间孪生系统解决方案
  • Phi-4-mini-reasoning辅助JDK版本升级评估:兼容性风险智能识别
  • Filter下固定块半导体设备PP精密加工案例 | 莱图加工程师实录
  • Llama-3.2V-11B-cot惊艳效果:手写公式图→识别→数学推导→结论验证全链路
  • Ollama小白入门:从零开始使用Yi-Coder-1.5B,体验AI写代码
  • all-MiniLM-L6-v2部署详解:GPU算力友好型轻量模型在Ollama中的优化实践
  • Windows Defender 移除工具深度解析:架构设计与企业级部署指南
  • DotNetPy:现代.NET 与 Python 互操作 实战指南临
  • 免费数字人形象哪里找?lite-avatar形象库150+资源实测
  • Z-Image-Turbo-辉夜巫女高性能部署:Xinference量化加载+Gradio并发优化实测
  • 科研助手实战:OpenClaw+Phi-3-vision自动整理文献图表数据
  • **为生命按下“刷新键”:当细胞科技成为健康管理的新日常**
  • 深度学习项目训练环境快速上手指南:5分钟激活dl环境、解压数据、启动训练
  • 原子操作的内存顺序
  • 解码AMD EPYC CPU命名规则:从数字到性能的全面解析
  • [5个高效方案]的开源项目X批量授权激活完全指南
  • 【PyCon 2025闭门分享精要】:Python 3.14 JIT底层调度器深度调优——用3行代码撬动47% CPU利用率提升
  • cv_unet_image-colorization实战案例:退役军人事务局荣誉影像AI修复工程