Ubuntu 上使用 Java 容器的三种实用方式
方式一 直接使用官方 OpenJDK 镜像运行 JAR
docker run -d --name myapp \
-p 8080:8080 \
-v "$PWD/app.jar:/app.jar:ro" \
openjdk:11 \
java -jar /app.jar
docker logs -f myapp
docker exec -it myapp bash
方式二 基于 Ubuntu 自制 JDK 镜像
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-11-jdk wget ca-certificates unzip && \
rm -rf /var/lib/apt/lists/*
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
ENV PATH=$JAVA_HOME/bin:$PATH
WORKDIR /app
COPY app.jar /app/app.jar
CMD ["java","-jar","/app/app.jar"]
docker build -t ubuntu-jdk11-app .
docker run -d --name myapp -p 8080:8080 ubuntu-jdk11-app
方式三 在运行的 Ubuntu 容器内安装 Java 并启动 JAR
docker exec -it <容器名> bash
apt-get update && apt-get install -y openjdk-11-jdk
java -version
mkdir -p /app/logs
nohup java -Dfile.encoding=UTF-8 -Xms512m -Xmx1024m \
-jar /app/app.jar >/app/logs/app.log 2>&1 &
关键注意事项与最佳实践
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV LANG=C.UTF-8