2025-09-16 21:25:24 +08:00
..
2025-09-16 21:25:24 +08:00
2025-09-16 21:25:24 +08:00
2025-09-16 21:25:24 +08:00

1、下载jdk/jre

官网下载地址 由于服务器上只需要java运行时环境所以这里选择下载jre如下图下载需要的对应的版本

2、删除jre中无用的文件

#解压
tar -zxvf jre-8u202-linux-x64.tar.gz
 
cd jre1.8.0_202
#删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt Welcome.html
 
#删除其他无用文件
rm -rf     lib/plugin.jar \
           lib/ext/jfxrt.jar \
           bin/javaws \
           lib/javaws.jar \
           lib/desktop \
           plugin \
           lib/deploy* \
           lib/*javafx* \
           lib/*jfx* \
           lib/amd64/libdecora_sse.so \
           lib/amd64/libprism_*.so \
           lib/amd64/libfxplugins.so \
           lib/amd64/libglass.so \
           lib/amd64/libgstreamer-lite.so \
           lib/amd64/libjavafx*.so \
           lib/amd64/libjfx*.so
 
#将解压文件重新压缩
tar -zcvf jre-8u202.tar.gz jre/

3、制作Dockerfile文件

# 使用CentOS 8作为基础镜像
FROM centos:8
 
# 维护者
MAINTAINER author 小蚂蚁
 
# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java
 
# 将jdk压缩文件复制到镜像中它将自动解压缩tar文件
ADD jre-8u202.tar.gz /usr/local/java/
 
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
# 设置环境变量
ENV LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8
ENV JAVA_HOME /usr/local/java/jre1.8.0_202
ENV PATH $JAVA_HOME/bin:$PATH
 
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp

# 工作目录
WORKDIR /opt/

4、构建镜像

docker build -t jre:8u202-centos8 .

5、创建容器

docker run -it --name docker_jre8 jre:8u202-centos8
docker run -i -t jre:8u202-centos8 /bin/bash

查看版本:
[root@3a881fab5716 opt]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

6、上传

# 打标签
docker tag jre:8u202-centos8 192.168.10.101:8001/xiaomayi-base/jre:8u202-centos8
# 上传镜像
docker push 192.168.10.101:8001/xiaomayi-base/jre:8u202-centos8

特别备注:

目标服务器非 root 用户权限问题解决:

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth": dial unix /var/run/docker.sock: connect: permission denied
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=manage.harbor.djangoadmin.cn%2Fxiaomayi%2Fxiaomayi-elevue&tag=dev-137": dial unix /var/run/docker.sock: connect: permission denied

解决办法把我们当前的用户添加到docker组中就可以了

参考地址:https://blog.csdn.net/weixin_43321041/article/details/120399194 chmod 666 /var/run/docker.sock

或者

权限问题: chmod 600 ~/.docker/config.json chmod 700 ~/.docker

sudo chown $USER:$USER ~/.docker sudo chown $USER:$USER ~/.docker/config.json

应用部署服务器需要设置docker配置

vim /usr/lib/systemd/system/docker.service
--insecure-registry manage.harbor.xiaomayicloud.com --insecure-registry 192.168.10.202:8001

chmod 666 /var/run/docker.sock