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

134 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

1、下载jdk/jre
[官网下载地址](https://www.oracle.com/java/technologies/downloads/archive/) 由于服务器上只需要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
```