Skip to content
seo

Docker技术知识:重构基础Docker镜像

开始是使用的构建最小JDK Docker镜像文章构架你的基础docker镜像,但是在使用过程中发现有些命令会用到,比如culr命令等,在这个镜像的基础上进行添加配置的话太费事了,改用alpine重构docker基础镜像

新增:
阿里云仓库的alpine尽可能使用最新的,这样一来,下载使用的openjdk8才能使用最新版的版本,老版本会有各种问题。
查看版本地址:http://mirrors.aliyun.com/alpine/
如下教程使用的是v3.6版本,但是已经有v3.12版本了
v3.6版本安装的java是1.8.0_212版本
v3.12版本安装的java是1.8.0_242版本

所以若使用的话,请使用最新版本的进行安装

仔细看上图,注意有个latest-stable
使用下面的这个可以始终使用最新版的

RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
新建Dockerfile文件
/usr/local/src/jre # cp /etc/localtime .
/usr/local/src/jre # touch timezone
/usr/local/src/jre # echo "Asia/Shanghai" >> timezone

/usr/local/src/ # ll
-rw-r--r-- 1 root root 348 7月 1 16:24 Dockerfile_alpine
-rw-r--r-- 1 root root 14 6月 18 11:44 timezone
-rw-r--r-- 1 root root 556 6月 18 11:41 localtime

/usr/local/src/ # cat Dockerfile_alpine
FROM alpine
MAINTAINER sandu
COPY localtime /etc/localtime
COPY timezone /etc/timezone
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/main/" > /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/community/" >> /etc/apk/repositories
RUN ["apk","update"]
RUN ["apk","add","curl"]
RUN ["apk","add","openjdk8"]
构造镜像
docker build -t idocker.io/jre:1.8.0_212 -f Dockerfile_alpine .

查看镜像
/usr/local/src/ # docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
idocker.io/jre 1.8.0_212 43884e29a144 5 seconds ago 102MB
alpine latest a24bb4013296 4 weeks ago 5.57MB
运行镜像
/usr/local/src/ # docker run -it idocker.io/jre:1.8.0_212
/ # curl --version
curl 7.61.1 (x86_64-alpine-linux-musl) libcurl/7.61.1 LibreSSL/2.5.5 zlib/1.2.11 libssh2/1.8.2
Release-Date: 2018-09-05
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets HTTPS-proxy
/ # java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
/ # date
Wed Jul 1 16:36:59 CST 2020
/ #
推送到nexus上的docker镜像仓库
/usr/local/src/ # docker push idocker.io/jre:1.8.0_212
The push refers to repository [idocker.io/jre]
2eca1ded193a: Pushed
53ba1eb3fd81: Pushed
b395cf06f961: Pushed
d80528bc0a2d: Pushed
374309465db4: Pushed
aa932aa3e1ca: Pushed
6b9ae09f37ea: Pushed
50644c29ef5a: Layer already exists
1.8.0_212: digest: sha256:d223e4aa153e2c85f038dd2510e8ac389bad1c1927e7923784d9d5da30c5f2fb size: 1990
注意事项
若是还需要安装其他软件,只需要在Dockerfile_alpine文件中按照原有的继续添加就行了
可以参考这篇文章:https://www.cnblogs.com/sanduzxcvbnm/p/13219846.html来搜索软件,然后再修改Dockerfile_alpine文件