我 运行 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 + pctrl + q 以分离

有两种方法可以进入运行容器:

1) Attach to the process/container

用于使用容器的 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

2) Execute the container

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 区分 foregrounddetached 模式 (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.