Docker运行失败,无法运行容器

我是docker工人,尝试在AWS免费层帐户t2.micro实例上构build我的第一个docker工具容器

我能够build立我的docker基于下面的Dockerfile

FROM java:8 COPY content-service / RUN chmod +x /bin/start.sh CMD bash -C '/bin/start.sh' EXPOSE 8081 MAINTAINER Velu 

它正在失败,并正在尝试运行容器命令,下面的错误信息越来越。

 [ec2-user@ip-172-31-30-38 cis-docker]$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE content-service latest 9fa3ca5a8ac3 10 minutes ago 705.7 MB docker.io/java 8 d23bdf5b1b1b 8 months ago 643.1 MB [ec2-user@ip-172-31-30-38 cis-docker]$ sudo docker --debug run -p 8082:8082 content-service DEBU[0000] framesize: 18 Starting service. DEBU[0000] Corrupted prefix: [] DEBU[0000] [hijack] End of stdout 

任何帮助,将不胜感激。

我通过复制一个打印“hello”到控制台的简单shell脚本来运行你的docker文件。 它运行成功。

另外,它似乎不像你的docker集装箱正在退出。 Docker正在运行你的shell脚本并正常退出。 要validation,在docker运行完成后立即运行以下命令,检查docker run命令的退出代码。

echo $?

如果上面的命令在屏幕上打印“0”,那么docker没有失败。

如果您希望将shell脚本作为后台守护程序运行,则需要确保脚本不会退出。 Docker容器一旦你的shell脚本在CMD行中指定,Dockerfile完成执行的原因是因为Docker的devise理念是为每个容器运行一个进程 。 在你的情况下,单一的进程是你的shell脚本。 因此,启动您的shell脚本中开始的任何服务作为前台进程,只要该服务正在运行,容器将保持运行。 只要该服务死亡,你的容器就是你想要的。

希望有所帮助。