无法运行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继续运行,容器是否可以一直运行?