如何使docker保持在前端运行而不退出,以便我可以看到运行日志输出
现在,我想让docker命令在前端运行,以便查看日志输出。现在我使用此命令运行docker容器:如何使docker保持在前端运行而不退出,以便我可以看到运行日志输出,docker,Docker,现在,我想让docker命令在前端运行,以便查看日志输出。现在我使用此命令运行docker容器: docker run -p 11110:11110 -p 11111:11111 -p 11112:11112 --name canal-server dolphinjiang/canal-server:v1.1.5 这是我的项目的Dockerfile: FROM centos:7 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime R
docker run -p 11110:11110 -p 11111:11111 -p 11112:11112 --name canal-server dolphinjiang/canal-server:v1.1.5
这是我的项目的Dockerfile:
FROM centos:7
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo ZONE=\"Asia/Shanghai\" > /etc/sysconfig/clock
RUN rm -rf /etc/yum.repos.d/*.repo
COPY CentOS6-Base-163.repo /etc/yum.repos.d/
RUN yum clean all
RUN groupadd -g 2500 canal; useradd -u 2501 -g canal -d /home/canal -m canal
RUN echo canal:De@2018er | chpasswd; echo root:dockerroot | chpasswd
RUN yum -y update && yum -y install wget vi openssl.x86_64 glibc.x86_64 tar tar.x86_64 inetutils-ping net-tools telnet which file
RUN yum clean all
COPY jdk-8u291-linux-x64.tar.gz /opt
RUN tar -zvxf /opt/jdk-8u291-linux-x64.tar.gz -C /opt && \
rm -rf /opt/jdk-8u291-linux-x64.tar.gz && \
chmod -R 755 /opt/jdk1.8.0_291 && \
chown -R root:root /opt/jdk1.8.0_291
RUN echo 'export JAVA_HOME=/opt/jdk1.8.0_291' >> /etc/profile
RUN echo 'export JRE_HOME=$JAVA_HOME/jre' >> /etc/profile
RUN echo 'export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH' >> /etc/profile
RUN echo 'export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH' >> /etc/profile
RUN source /etc/profile
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV JAVA_HOME /opt/jdk1.8.0_291
ENV PATH $PATH:$JAVA_HOME/bin
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
ADD canal-server /home/canal/
RUN chmod 755 /home/canal/bin
WORKDIR /home/canal/bin
RUN chmod 777 /home/canal/bin/restart.sh
RUN chmod 777 /home/canal/bin/startup.sh
RUN chmod 777 /home/canal/bin/stop.sh
RUN chmod 777 /home/canal/bin/config.sh
CMD /home/canal/bin/config.sh
这是config.sh:
这是start.sh:
启动docker后,它会自动退出,docker不会启动,也不会输出日志。我应该怎么做才能让它在前端运行。成功后,切换到后端。我还尝试像这样在deamon中运行(使容器在后台运行,而不是退出):
docker run -it -d -p 11110:11110 -p 11111:11111 -p 11112:11112 --name canal-server canal/canal-server:v1.1.5
进程仍然自动退出。docker容器没有启动。基本上,您应该根据最新的评论得出结论。 Docker基于某个命令,当它完成时,它会停止容器 因此,要使其持续运行,您应该拥有命令并无限运行 也请检查这个答案,还有更多的解释 最简单的解决方案之一是跟踪一些日志。 像
从基本上,你应该根据你最新的评论得出结论。 Docker基于某个命令,当它完成时,它会停止容器 因此,要使其持续运行,您应该拥有命令并无限运行 也请检查这个答案,还有更多的解释 最简单的解决方案之一是跟踪一些日志。 像 摘自您可以使用tail-f/dev/null阻止容器停止,请尝试以下操作
docker run -it -d -p 11110:11110 -p 11111:11111 -p 11112:11112 --name canal-server canal/canal-server:v1.1.5 tail -f /dev/null
另请参见此您可以使用tail-f/dev/null阻止容器停止,请尝试以下操作
docker run -it -d -p 11110:11110 -p 11111:11111 -p 11112:11112 --name canal-server canal/canal-server:v1.1.5 tail -f /dev/null
另请参见此从docker run命令中删除-d开始。我已尝试删除-d,但进程仍将退出@最后,我使用此脚本保持容器的活动状态,不退出:虽然为true:do sleep 1 done,但我不知道是否有更好的方法来执行此操作。从docker run命令中删除-d开始。我已尝试删除-d,但进程仍然退出@最后,我使用这个脚本来保持容器的活动状态,并且不退出:虽然为true:do sleep 1 done,但我不知道是否有更好的方法。
docker run -it -d -p 11110:11110 -p 11111:11111 -p 11112:11112 --name canal-server canal/canal-server:v1.1.5
tail -f /dev/null
docker run -it -d -p 11110:11110 -p 11111:11111 -p 11112:11112 --name canal-server canal/canal-server:v1.1.5 tail -f /dev/null