如何解决docker 执行exec报错问题
发布时间 - 2022-01-12 00:00:00 点击率:次docker执行exec报错的解决办法:1、把脚本中的第一行用“/bin/bash”替换;2、执行“docker exec -d service_name /bin/bash -c '/opt/start.sh'”。
本文操作环境:centos7系统、Docker 20.10.11版本、Dell G3电脑。
docker exec 执行脚本失败解决方法
背景介绍
docker容器里有一个脚本,需要在使用的时候在后台运行,但是通过docker exec 调用这个脚本却一直得不到想要的结果,于是开始了探究之路!
原始脚本
docker exec -it service_name /bin/bash -c '/opt/start.sh'
这个start.sh的作用就是在后台启动两个服务
#!/bash nohup start1.sh > start1.log 2>&1 & sleep 5 nohup start2.sh 2>&1 & echo 'server started'
问题定位
1. 脚本书写不规范
从上述的命令中可以看到docker 启动的时候用的式/bin/bash 而脚本中指定的确实/bash.我们都知道脚本第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行。因此需要把脚本中的第一行用/bin/bash替换了,使得它们用同一个解释器
2.启动参数有问题
docker exec 执行的过程中使用了-it这个参数,
- -t让docker分配一个伪终端并绑定到容器的标准输入上
- -i则让容器的标准输入保持打开.
这样执行完后台脚本只能云行第一个start.sh, 第二个并不能起作用,因为执行完了终端也退出了,
看到help 中, 有一个-d, 后台云行脚本, 这一条刚好符合我们的要求
修改过程
docker exec -d service_name /bin/bash -c '/opt/start.sh'
#!/bin/bash nohup start1.sh > start1.log 2>&1 & sleep 5 nohup start2.sh 2>&1 & echo 'server started'
推荐学习:《docker教程》
# docker
# bash
# 有一个
# 这一
# 放在
# 出了
# 第一个
# 之路
# 第二个
# 可以看到
# 并不能
# 报错
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
大型企业网站制作流程,做网站需要注册公司吗?
Laravel Fortify是什么,和Jetstream有什么关系
Bootstrap整体框架之CSS12栅格系统
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel如何使用Livewire构建动态组件?(入门代码)
C#如何调用原生C++ COM对象详解
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何自定义建站之星模板颜色并下载新样式?
android nfc常用标签读取总结
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Laravel如何配置任务调度?(Cron Job示例)
制作公司内部网站有哪些,内网如何建网站?
Laravel如何配置Horizon来管理队列?(安装和使用)
如何将凡科建站内容保存为本地文件?
如何批量查询域名的建站时间记录?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
大同网页,大同瑞慈医院官网?
IOS倒计时设置UIButton标题title的抖动问题
如何在IIS中新建站点并解决端口绑定冲突?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Laravel如何处理CORS跨域请求?(配置示例)
原生JS获取元素集合的子元素宽度实例
Laravel如何自定义错误页面(404, 500)?(代码示例)
如何获取上海专业网站定制建站电话?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
佛山企业网站制作公司有哪些,沟通100网上服务官网?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
使用Dockerfile构建java web环境
高端网站建设与定制开发一站式解决方案 中企动力
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
免费网站制作appp,免费制作app哪个平台好?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
JavaScript中的标签模板是什么_它如何扩展字符串功能
如何在Tomcat中配置并部署网站项目?
网站制作企业,网站的banner和导航栏是指什么?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
详解vue.js组件化开发实践
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
javascript中的try catch异常捕获机制用法分析
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
Laravel如何实现本地化和多语言支持?(i18n教程)
香港服务器网站卡顿?如何解决网络延迟与负载问题?


ce_name /bin/bash -c '/opt/start.sh'