代码之家  ›  专栏  ›  技术社区  ›  cdarwin

将shell打开为Java映像

  •  0
  • cdarwin  · 技术社区  · 7 年前

    我看到了 docker ps -a 但它已经退出了。

    我正在使用的文件是这个.yaml和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:
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   David Maze    7 年前

    Docker容器通常运行单个进程。同样地,在没有应用程序连接的情况下运行一个JVM也没有什么实际意义,运行一个带有JVM但没有实际添加到其中的应用程序的Docker容器也没有什么实际意义。

    您应该编写一个Dockerfile,将应用程序的jar文件添加到基本Java映像中;例如

    FROM openjdk:8
    COPY app.jar /
    CMD ["java", "-jar", "/app.jar"]
    

    docker-compose.yml 文件可以包含生成和运行此映像的指令

    services:
      java:
        build: .
    

    如果您只想在图像的副本中插入一个shell来查看其中的内容,通常可以运行

    docker run --rm -it openjdk:8 sh
    

    这个 standard openjdk Dockerfile /bin/sh ,但是没有要运行的命令,它也将立即退出。)您可以声明其他 command: