JDK各版本官网下载地址: https://www.oracle.com/java/technologies/downloads/archive/#JavaSE
这里我们以 JDK 8u351
为例,点击 Java SE (8U211 and later)
。
点击下载 jdk-8u351-linux-x64.tar.gz
。
勾选接受协议,点击下载。(这里会需要登录一下,没有账号可以注册一个,Oracle账号以后也会用到)
下载后,文件如下:
创建一个用于构建镜像的文件夹,并在文件夹中新建一个文本文件,重命名为 Dockerfile,内容如下:
# 基础镜像(大小:155MB)
FROM quay.io/centos/centos:stream9
# 配置JAVA的环境变量
ENV JAVA_DIR=/usr/local
ENV JAVA_HOME=$JAVA_DIR/jdk1.8.0_351
# 配置到PAHT中
ENV PATH=$PATH:$JAVA_HOME/bin
# 添加 redis 客户端
ADD redis-cli /usr/bin
# 添加 JDK
ADD jdk-8u351-linux-x64.tar.gz $JAVA_DIR
# 安装、更新基础控件
RUN yum -q -y update && yum -q -y upgrade \
&& yum install -y tzdata vim less ncurses telnet wget zip unzip traceroute procps net-tools iproute tcpdump mysql postgresql \
&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& chmod +x /usr/bin/redis-cli \
&& yum clean all \
&& echo "alias ls='ls --color'" >> ~/.bashrc \
&& echo "alias ll='ls -l'" >> ~/.bashrc
# 需要下载文件的话可以用这个命令
# && wget --quiet https://www.baidu.com/test.txt -P /usr/bin/ \
# 暴露端口
EXPOSE 8888
# 启动命令(因为是基础镜像的Dockerfile,这里轮询让容器可以访问即可)
ENTRYPOINT ["/bin/bash","-c","while true; do sleep 300; done;"]
补充:
基础镜像没有直接使用 openjdk:8-jdk
的镜像是因为镜像中没有 yum
命令,不方便后期更新和扩展控件。
如果不需要使用 mysql
、redis-cli
、postgresql
等命令可以直接去掉。
redis-cli 下载地址:https://share.weiyun.com/f37Mekqs
在文件夹下执行如下命令,构建镜像:
docker build -t image_name:image_tag .
执行结果:
(yum安装控件可能需要等待 3 分钟左右)
查看创建好的镜像:
docker images | grep image_name
执行结果:
创建容器:
docker run -d --name=container_name image_name:image_tag
进入容器:
docker exec -it container_name bash
查看 JDK 版本:
java -version
执行结果:
整理完毕,完结撒花~
参考地址:
1.Docker部署java项目(Dockerfile方式),https://blog.csdn.net/zhabnghenglmm/article/details/124310381
2.[docker]-容器中支持ll命令,https://blog.csdn.net/xujiamin0022016/article/details/125341593