无法与上面有 Java 进程的 Docker 控制台分离
Cannot detach from Docker console with Java process on it
我无法从 Docker 容器中分离出来。
Docker定义容器的文件:
FROM adoptopenjdk/openjdk16:debian
WORKDIR /app
STOPSIGNAL SIGTERM
RUN apt-get update && apt-get install -y curl && apt clean
CMD curl -so server.jar https://ci.tivy.ca/job/Airplane-1.17/lastSuccessfulBuild/artifact/launcher-airplane.jar && java -jar server.jar
构建容器:docker build -t minecraft .
docker-编写文件:
version: "3.7"
services:
mc:
container_name: mc
ports:
- 25565:25565
image: minecraft
volumes:
- type: bind
source: /root/mc
target: /app
启动容器:docker-compose up mc
我尝试使用 docker attach mc
连接到控制台,它有效。但我并非无法脱离屏幕。 Ctrl+C 无效。 Ctrl+P 和 Ctrl+Q 不起作用。写入 stop
(将停止 java 进程的命令)不起作用
我尝试使用 docker attach --detach-keys="ctrl-d" mc
进行附加,但无法正常工作
Java 进程永无止境
找到修复自己。需要插入 stdin_open 和 ttyin docker-compose 文件。新 docker-compose.yml:
version: "3.7"
services:
mc:
container_name: mc
ports:
- 25565:25565
image: minecraft
volumes:
- type: bind
source: /root/mc
target: /app
stdin_open: true
tty: true
由于 Whosebug 规则,将在两天内将此答案设置为解决方案
我无法从 Docker 容器中分离出来。
Docker定义容器的文件:
FROM adoptopenjdk/openjdk16:debian
WORKDIR /app
STOPSIGNAL SIGTERM
RUN apt-get update && apt-get install -y curl && apt clean
CMD curl -so server.jar https://ci.tivy.ca/job/Airplane-1.17/lastSuccessfulBuild/artifact/launcher-airplane.jar && java -jar server.jar
构建容器:docker build -t minecraft .
docker-编写文件:
version: "3.7"
services:
mc:
container_name: mc
ports:
- 25565:25565
image: minecraft
volumes:
- type: bind
source: /root/mc
target: /app
启动容器:docker-compose up mc
我尝试使用 docker attach mc
连接到控制台,它有效。但我并非无法脱离屏幕。 Ctrl+C 无效。 Ctrl+P 和 Ctrl+Q 不起作用。写入 stop
(将停止 java 进程的命令)不起作用
我尝试使用 docker attach --detach-keys="ctrl-d" mc
进行附加,但无法正常工作
Java 进程永无止境
找到修复自己。需要插入 stdin_open 和 ttyin docker-compose 文件。新 docker-compose.yml:
version: "3.7"
services:
mc:
container_name: mc
ports:
- 25565:25565
image: minecraft
volumes:
- type: bind
source: /root/mc
target: /app
stdin_open: true
tty: true
由于 Whosebug 规则,将在两天内将此答案设置为解决方案