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++查看

docker:运行容器时报standard_init_linux.go:190: exec user process caused “no such file or directory“ 之化解术_第1张图片

 

三、化解术

1、使用命令小工具转换

 1.安装dos2unix

yum install -y dos2unix

 2.相关文件转换一下字符

dos2unix Dockerfile
dos2unix run.sh

2、使用notepad++转换

docker:运行容器时报standard_init_linux.go:190: exec user process caused “no such file or directory“ 之化解术_第2张图片

你可能感兴趣的:(Docker,docker,centos)