我在后台运行一个容器
docker run -d --name hadoop h_Service
它迅速退出。但是,如果我在前台运行,则可以正常运行。我使用检查了日志
docker logs hadoop
没有错误。有任何想法吗?
DOCKERFILE
FROM java_ubuntu_new
RUN wget http://archive.cloudera.com/cdh4/one-click-install/precise/amd64/cdh4-repository_1.0_all.deb
RUN dpkg -i cdh4-repository_1.0_all.deb
RUN curl -s http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/archive.key | apt-key add -
RUN apt-get update
RUN apt-get install -y hadoop-0.20-conf-pseudo
RUN dpkg -L hadoop-0.20-conf-pseudo
USER hdfs
RUN hdfs namenode -format
USER root
RUN apt-get install -y sudo
ADD . /usr/local/
RUN chmod 777 /usr/local/start-all.sh
CMD ["/usr/local/start-all.sh"]
start-all.sh
#!/usr/bin/env bash
/etc/init.d/hadoop-hdfs-namenode start
/etc/init.d/hadoop-hdfs-datanode start
/etc/init.d/hadoop-hdfs-secondarynamenode start
/etc/init.d/hadoop-0.20-mapreduce-tasktracker start
sudo -u hdfs hadoop fs -chmod 777 /
/etc/init.d/hadoop-0.20-mapreduce-jobtracker start
/bin/bash
一个Docker容器的主要过程完成后退出。
在这种情况下,它将在start- all.sh
脚本结束时退出。我对hadoop不太了解,无法在这种情况下告诉您如何做,但是您需要要么在前台运行某些东西,要么使用诸如runit或supervisor之类的流程管理器来运行流程。
我认为,如果不指定-d
,您一定会误以为它会起作用;它应该具有完全相同的效果。我怀疑您是用稍微不同的命令启动了它,或者使用-it
它会改变某些情况。
一个简单的解决方案可能是添加如下内容:
while true; do sleep 1000; done
到脚本末尾。但是我不喜欢这样,因为脚本实际上应该监视启动的进程。
(我应该说我从https://github.com/sequenceiq/hadoop-
docker/blob/master/bootstrap.sh
窃取了该代码)
容器总是在创建和运行后立即退出。 我尝试使用命令运行mssql实例 当尝试类似的SO link link时 它显示 但在run命令中我已经设置了'accept_eula=y'。
问题内容: 我正在尝试在Docker容器中运行.net core 1.0.0控制台应用程序。 当我从计算机上的Demo文件夹中运行命令时,它可以正常工作;但是当使用运行时,容器会立即退出。 我试图检查日志,它只是显示Console.WriteLine中的文本: 演示应用正在运行… 没什么 我已经将项目上传到https://github.com/learningdockerandnetcore/De
问题内容: 我正在尝试学习如何将docker compose与nginx容器的简单设置结合使用,该设置将请求重新路由到ghost容器。我正在使用标准的鬼影图像,但是有一个自定义的nginx图像(继承自标准图像)。 当我使用“ docker-compose up”运行合成文件时,它会立即退出,而“ docker_nginx_1以代码0退出”。但是,当我手动构建并运行它时,它运行良好,并且可以将浏览器
问题内容: 我有一个从Docker集线器提取的Docker映像。 当我运行时,容器立即退出。 我无权访问Docker映像的源代码,包括Dockerfile。我所拥有的只是我从中获得的图像。 我需要调试/查看映像中的内容(例如查看和浏览映像的文件系统),而无需将其作为容器运行。 可能吗? 问题答案: 从所需的图像启动容器,如下所示: 即使未连接STDIN仍保持打开状态 分配一个伪tty 梅子退出后停
我想在容器启动时设置一些配置,为此我使用shell脚本。但我的容器将在脚本结束后立即退出,我尝试了-d标志/分离模式,但它永远不会在分离模式下运行。 下面是我的Dockerfile 下面是我的shell脚本 > 无旗奔跑 这将在我的控制台和出口打印“你好码头工人” 使用-itd标志运行 > 我看到的区别是在命令部分,当我运行其他图像时,命令部分将显示/bin/bash,并将在分离模式下继续。 当我