docker:运行容器时报standard_init_linux.go:190: exec user process caused “no such file or directory“ 之化解术
·
一、背景
docker所在主机:CentOS 7.4
Dockerfile编写环境是Win10 ,Nodepad++
在现实工作中,有时编写一个Dockerfile文件,build后没提示任何错误。但是运行docker容器时容器没有驻留,异常中止了,使用dokcer logs查看日志却提示standard_init_linux.go:190: exec user process caused "no such file or directory" 。
我去,这是什么原因呢?一头雾水,请往下看。
二、原因分析
如果是使用notepad++来编辑文件,并通过FTP上传到服务器,默认是以DOS文本格式来创建的,这时就需要把文件转换下字符,避免出现standard_init_linux.go:190: exec user process caused "no such file or directory" 错误提示。
1、在linux服务器上查看:
cat -v run.sh
#!/bin/bash^M
^M
python3 /root/start.sh:^M
service mysql start:^M
^M
# 就是^M这个造成的问题。
2、在windows上用notepad++查看

三、化解术
1、使用命令小工具转换
1.安装dos2unix
yum install -y dos2unix
2.相关文件转换一下字符
dos2unix Dockerfile
dos2unix run.sh
2、使用notepad++转换

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)