docker ps -a
中看到了它,但它已经退出。
我正在使用的文件是docker-compose的。version: '3.1'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: postgres
volumes:
- datavolume:/var/lib/postgresql
java:
image: openjdk:8
volumes:
datavolume:
docker容器通常运行一个过程。 就像仅在没有附加的应用程序的情况下运行JVM并不是很有意义的方式,运行具有JVM的Docker容器,但没有添加实际的应用程序并不是那么有用。
您应该写一个Dockerfile,将您的应用程序的JAR文件添加到基本Java映像中;例如FROM openjdk:8
COPY app.jar /
CMD ["java", "-jar", "/app.jar"]
docker-compose.yml
文件可以具有构建和运行此image的说明
services:
java:
build: .
如果您只想在图像的副本中放一个外壳来戳四周并查看那里的东西,那么通常可以运行
docker run --rm -it openjdk:8 sh
标准openjdk dockerfile不明确声明任何特定的入口点或cmd,因此运行时它将立即退出。 (它可能继承了一个默认的
/bin/sh
,但是没有运行的命令,这也将立即退出。)您可以在Dockerfile中声明其他一些command:
导致“服务”不退出,但并没有真正对您有用。
docker run -it openjdk:25-ea-jdk bash