我 运行 tomcat 在 Docker 但是当我关闭终端时它停止了,所以如何让它 运行 连续
I run the tomcat in Docker but when I close the terminal it stops, so how to make it run continuous
我 运行 tomcat 服务器 8 在 docker,当我 运行 使用 docker [=27] 时它 运行 是正确的=] 命令和命令提示符不回来,现在我按 ctrl+c 并提示回来,但是现在 tomcat 服务器已经停止所以当我检查 http://localhost:8080 时 tomcat页面未出现。那么如何使它 运行 连续或所谓的容器中的系统级进程。
这是我的 docker 文件。帮我解决这个问题
FROM scratch
FROM ubuntu:16.04
RUN mkdir /opt/java8
RUN mkdir /opt/tomcat8
ENV JAVA_HOME /opt/java8
ENV CATALINA_HOME /opt/tomcat8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
ADD jdk1.8.0_112 /opt/java8
ADD apache-tomcat-8.0.38 /opt/tomcat8
ADD M_UserTP.war /opt/tomcat8/webapps
EXPOSE 8080
CMD ["catalina.sh", "run"]
运行 startup.sh连我都帮不了。
而不是 ctrl
+ c
,您应该键入 ctrl
+ p
和 ctrl
+ q
以分离
有两种方法可以进入运行容器:
用于使用容器的 ID 或名称将终端的标准输入、输出和错误附加到 运行 容器。 这允许您查看其正在进行的输出或者以交互方式控制它,就像命令直接在您的终端中 运行 一样。
要停止容器,请使用 CTRL-c。此键序列将 SIGKILL 发送到容器。 您可以使用 CTRL-p CTRL-q 键序列从容器中分离并保留它 运行。
# docker run -it ubuntu:15.0 /bin/bash
root@9391b08536ae:/#
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9391b08536ae ubuntu:15.0 "/bin/bash" 6 seconds ago Up 6 seconds 0/tcp confident_albattani
# docker attach 939
root@9391b08536ae:/#
root@9391b08536ae:/# exit
exit
root@labadmin-VirtualBox:~/RAGHU/python# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker exec 命令在 运行 容器中运行一个新命令。
# docker exec -it 939 /bin/bash
root@9391b08536ae:/# exit
exit
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9391b08536ae ubuntu:15.0 "/bin/bash" 25 seconds ago Up 25 seconds 0/tcp confident_albattani
希望这对您有所帮助。
docker run
区分 foreground 和 detached 模式 (source)。你的麻烦是因为你 运行 容器处于 foreground 模式。要 运行 它在后台作为守护进程,请使用 detached 模式:
docker run -d [IMAGE] [COMMAND]
这会在后台启动容器,并在内部进程继续 运行 时保持 运行ning。您可以通过查看其日志 (docker logs [CONTAINER_ID]
) 或跳转到容器内的 shell (docker exec -it [CONTAINER_ID] /bin/sh
).
来了解容器内部发生的情况。
如果您使用完容器,请使用 docker stop [CONTAINER_ID]
停止它。如果您不确定是否有容器 运行ning,请使用 docker ps
.
我 运行 tomcat 服务器 8 在 docker,当我 运行 使用 docker [=27] 时它 运行 是正确的=] 命令和命令提示符不回来,现在我按 ctrl+c 并提示回来,但是现在 tomcat 服务器已经停止所以当我检查 http://localhost:8080 时 tomcat页面未出现。那么如何使它 运行 连续或所谓的容器中的系统级进程。 这是我的 docker 文件。帮我解决这个问题
FROM scratch
FROM ubuntu:16.04
RUN mkdir /opt/java8
RUN mkdir /opt/tomcat8
ENV JAVA_HOME /opt/java8
ENV CATALINA_HOME /opt/tomcat8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
ADD jdk1.8.0_112 /opt/java8
ADD apache-tomcat-8.0.38 /opt/tomcat8
ADD M_UserTP.war /opt/tomcat8/webapps
EXPOSE 8080
CMD ["catalina.sh", "run"]
运行 startup.sh连我都帮不了。
而不是 ctrl
+ c
,您应该键入 ctrl
+ p
和 ctrl
+ q
以分离
有两种方法可以进入运行容器:
用于使用容器的 ID 或名称将终端的标准输入、输出和错误附加到 运行 容器。 这允许您查看其正在进行的输出或者以交互方式控制它,就像命令直接在您的终端中 运行 一样。
要停止容器,请使用 CTRL-c。此键序列将 SIGKILL 发送到容器。 您可以使用 CTRL-p CTRL-q 键序列从容器中分离并保留它 运行。
# docker run -it ubuntu:15.0 /bin/bash
root@9391b08536ae:/#
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9391b08536ae ubuntu:15.0 "/bin/bash" 6 seconds ago Up 6 seconds 0/tcp confident_albattani
# docker attach 939
root@9391b08536ae:/#
root@9391b08536ae:/# exit
exit
root@labadmin-VirtualBox:~/RAGHU/python# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker exec 命令在 运行 容器中运行一个新命令。
# docker exec -it 939 /bin/bash
root@9391b08536ae:/# exit
exit
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9391b08536ae ubuntu:15.0 "/bin/bash" 25 seconds ago Up 25 seconds 0/tcp confident_albattani
希望这对您有所帮助。
docker run
区分 foreground 和 detached 模式 (source)。你的麻烦是因为你 运行 容器处于 foreground 模式。要 运行 它在后台作为守护进程,请使用 detached 模式:
docker run -d [IMAGE] [COMMAND]
这会在后台启动容器,并在内部进程继续 运行 时保持 运行ning。您可以通过查看其日志 (docker logs [CONTAINER_ID]
) 或跳转到容器内的 shell (docker exec -it [CONTAINER_ID] /bin/sh
).
如果您使用完容器,请使用 docker stop [CONTAINER_ID]
停止它。如果您不确定是否有容器 运行ning,请使用 docker ps
.