制作以centos:7为基础镜像的jdk1.8的Docker并且部署java程序

1、第一种方式(操作式)

  • 先拉取centos:7

docker pull centos:7

  • 启动centos:7镜像

docker run -it --name mycentos centos:7 /bin/bash

  • 从外面下载jdk1.8的包传到服务器目录/javademo下

  • 在/javademo目录下,将jdk的包解压

tar -zxvf jdk-8u211-linux-x64.tar.gz

  • 将jdk的包拷贝到centos:7容器中

docker cp jdk1.8.0_211 myCentos:/usr/local/java

  • 进入容器

docker exec -it myCentos bash

  • 给centos:7容器设置环境变量

vi /etc/profile

  • 加入环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH
  • 刷新环境变量

source /etc/profile

这样加入环境变量的方式,我发现,一旦容器重启,环境变量就会不生效,只有重新刷新环境变量才会好。

不过之后你可以将这个容器打包成image作为其他的基础镜像,只需要在制作镜像时Dockerfile中加入jdk的环境变量就行。

  • 打包成image(只能作为基础镜像,直接启动环境变量不生效,source /etc/profile后可以)

docker commit myCentos mycentos:v1

我们以这个为基础镜像写一个Dockerfile,运行一个jar包,我将jar包和Dockerfile放在同一文件夹下,进入这个文件夹

FROM mycentos:v1
WORKDIR /app
COPY demo-0.0.1-SNAPSHOT.jar /app/demo.jar
ENV JAVA_HOME /usr/local/java/jdk1.8.0_211
ENV PATH $JAVA_HOME/bin:$PATH
ENV  JAVA_OPTS="-server -Xmx2g -Xms2g -Dfile.encoding=UTF8  -Duser.timezone=GMT+08"
CMD exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom  -jar /app/demo.jar
  • 使用Dockerfile制作一个image(在Dockerfile的路径下)

docker build -t='myjava:m1' .

  • 运行这个image

docker run --privileged -it -d --name mydemo -p 8085:8085 myjava:m1

1、第二种方式(Dockerfile一体式)

FROM centos:7
WORKDIR /app
ADD jdk-8u211-linux-x64.tar.gz  /usr/local/java/
COPY demo-0.0.1-SNAPSHOT.jar /app/demo.jar
ENV JAVA_HOME /usr/local/java/jdk1.8.0_211
ENV PATH $JAVA_HOME/bin:$PATH
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV  JAVA_OPTS="-server -Xmx2g -Xms2g -Dfile.encoding=UTF8  -Duser.timezone=GMT+08"
CMD exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom  -jar /app/demo.jar

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容