一、背景

docker所在主机:CentOS 7.4

Dockerfile编写环境是Win8.1 ,Nodepad++

        今天新编写了个Dockerfile,然后build后没提示任何错误。而运行docker容器时容器没有驻留,而是异常中止了,使用dokcer logs查看日志却提示standard_init_linux.go:195: exec user process caused "no such file or directory" 。当时整个人就不好了,由于我是通过FTP把用Nodepad++写好的文件上传至宿主机的,而百度出的原因是dos字符与unix字符的问题。所以把百度来的解决办法写出来留个记录。

 

二、解决办法

        如果使用的notepad++来编辑文件并上传到服务器中,默认是以DOS文本格式来创建的,这样就需要把文件转换下字符,这样就不会出现standard_init_linux.go:195: exec user process caused "no such file or directory" 这个错误提示了。

cat -v run-lamp.sh 
#!/bin/bash^M
^M
service apache2 start:^M
service mysql start:^M
^M

# 就是^M这个造成的问题。

解决步骤1: 安装dos2unix

 yum install -y dos2unix

解决步骤2: 将相关文件转换一下字符

dos2unix Dockerfile
dos2unix run-lamp.sh

三、问题解决

        大家可以继续趟坑了。。。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐