我使用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
来运行容器,但我发现我的容器无法运行。
我该怎么办?
答案 0 :(得分:2)
您的图片构建并正确运行。您只需要从运行中删除d
标志(用于分离)或者docker命令将立即退出并在后台运行您的容器。根据{{1}}中的状态列,您可以看到它实际上已退出代码为零。
您可以通过运行docker ps -a
(这是您的容器ID)来证实这一点。您应该看到docker logs d63a
。
答案 1 :(得分:0)
您的描述不准确。当您docker run
容器时,它通常会启动,打印aaaa
,然后退出。
所以我想你会问的是"为什么我的容器无法继续运行,例如守护进程"。这是因为你正在执行一个实际上是一次性的shell脚本。将Dockerfile中的CMD
行修改为CMD "bash"
,您的容器将不会退出。