环境
- JDK11
- Springboot 2.5
- Ubuntu 20
- K8S 1.22.2
- 3 台机器(1Master + 2Nodes)
镜像制作
- 下载jdk11
jdk-11.0.11_linux-x64_bin.tar.gz
- 基于springboot构建简单项目并达成jar
helloword-1.0.0.jar
- 编写Dockerfile文件build镜像
root@lean-master:~/docker# cat jdk11-image.Dockerfile
#1.指定基础镜像,并且必须是第一条指令
FROM centos:7
#2.指明该镜像的作者和其电子邮件
MAINTAINER quan "quan@163.com"
RUN mkdir /usr/local/java
RUN mkdir /usr/local/webapp
# ADD 命令会解压
ADD jdk-11.0.11_linux-x64_bin.tar.gz /usr/local/java/
COPY helloword-1.0.0.jar /usr/local/webapp
ENV JAVA_HOME=/usr/local/java/jdk-11.0.11
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
EXPOSE 8080
#容器启动时需要执行的命令
ENTRYPOINT ["java","-jar","/usr/local/webapp/helloword-1.0.0.jar","&"]
将以上上个文件放到一个目录下,在build镜像文件前,先验证下jar是可执行文件,如果没用问题开始执行:
root@lean-master:~/docker# docker build -t quan/demo:v1 . -f jdk11-image.Dockerfile
Sending build context to Docker daemon 199.4MB
Step 1/12 : FROM centos:7
---> eeb6ee3f44bd
Step 2/12 : MAINTAINER quan "quan@163.com"
---> Using cache
---> d95385715450
Step 3/12 : RUN mkdir /usr/local/java
---> Using cache
---> fd2c58c00b30
Step 4/12 : RUN mkdir /usr/local/webapp
---> Using cache
---> 42bcd0709ce0
Step 5/12 : ADD jdk-11.0.11_linux-x64_bin.tar.gz /usr/l