无法运行docker容器?
我使用无法运行docker容器?,docker,dockerfile,Docker,Dockerfile,我使用docker build-t iot.构建图像 我的Dockerfile是: FROM centos USER root ADD jdk1.8.0_101.tar.gz /root COPY run.sh /etc RUN chmod 755 /etc/run.sh CMD "/etc/run.sh" 我的run.sh是: #!/bin/bash echo "aaaa" 我使用docker run-itd iot运行容器,但我发现我的容器无法运行。 我该怎么办?您的映像
docker build-t iot.
构建图像
我的Dockerfile是:
FROM centos
USER root
ADD jdk1.8.0_101.tar.gz /root
COPY run.sh /etc
RUN chmod 755 /etc/run.sh
CMD "/etc/run.sh"
我的run.sh是:
#!/bin/bash
echo "aaaa"
我使用docker run-itd iot
运行容器,但我发现我的容器无法运行。
我该怎么办?您的映像构建和运行正常。您只需从run(用于detached)中删除
d
标志,否则docker命令将立即退出并在后台运行您的容器。您可以看到,根据docker ps-a
中的status列,它实际上是以代码0退出的
您可以通过运行
docker logs d63a
(这是您的容器id)来证实这一点。您应该看到aaaa
您的映像构建和运行正常。您只需从run(用于detached)中删除d
标志,否则docker命令将立即退出并在后台运行您的容器。您可以看到,根据docker ps-a
中的status列,它实际上是以代码0退出的
您可以通过运行
docker logs d63a
(这是您的容器id)来证实这一点。你应该看到你的描述不准确。当您docker运行
容器时,它通常会启动,打印aaaa
,然后退出
所以我想你会问“为什么我的容器不能继续运行,比如守护进程”。这是因为您正在执行一个shell脚本,它实际上是一次性的。将Dockerfile中的
CMD
行修改为CMD“bash”
,容器将不会退出。您的描述不准确。当您docker运行
容器时,它通常会启动,打印aaaa
,然后退出
所以我想你会问“为什么我的容器不能继续运行,比如守护进程”。这是因为您正在执行一个shell脚本,它实际上是一次性的。将Dockerfile中的
CMD
行修改为CMD“bash”
,您的容器将不会退出。我将Dockerfile更改为CMD“bash”“/etc/run.sh”,它不工作,只是CMD“bash”
,没有“/etc/run.sh”
部分。我必须运行run.sh,这是一个示例,事实上我在run.shOK中运行我的程序,忘记我之前的建议,在run.sh后面加一行:sleep infinity
你的意思是,因为run.sh完成了运行,容器就停止了。如果run.sh继续运行,容器可以一直运行吗?我将Dockerfile更改为CMD“bash”“/etc/run.sh”,并且它不工作,只是CMD“bash”
,没有“/etc/run.sh”
部分。我必须运行run.sh,这是一个示例,事实上我在run.shOK中运行我的程序,忘记我以前的建议,然后在run.sh中添加一行:sleep infinity
您的意思是,因为run.sh完成了运行,所以容器停止运行。如果run.sh继续运行,容器是否可以一直运行?