在一次使用镜像部署项目中,发现推送的消息时间不是预设的,检查后发现是基础镜像时区不对导致。下面是自己制作基础镜像的简单记录,可参考制作更适合的基础镜像,以支持快速部署。
1、拉取alpine
docker pull openjdk:8-jdk-alpine
2、创建Dockerfile文件
FROM openjdk:8-jdk-alpine
#可定制各类包-国内包替换-基础工具-设定时区-字体等
RUN echo "https://mirrors.aliyun.com/alpine/v3.14/main/" > /etc/apk/repositories && \
echo "https://mirrors.aliyun.com/alpine/v3.14/community/" >> /etc/apk/repositories && \
apk update && apk add --no-cache bash bash-doc bash-completion busybox-extras tcpdump curl font-adobe-100dpi ttf-dejavu fontconfig tini tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo 'Asia/Shanghai' > /etc/timezone && \
apk del tzdata && \
rm -rf /tmp/* /var/cache/apk/*
3、build镜像:
进入 Dockerfile同一个目录下 【域名请同步更换】
docker build -t registry.zfreebird.com/openjdk/openjdk:8u342-alpine .
4、查看构建结果
docker run -it registry.zfreebird.com/openjdk/openjdk:8u342-alpine
/ # java -version
openjdk version "1.8.0_342"
OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.342.04-r0)
OpenJDK 64-Bit Server VM (build 25.342-b04, mixed mode)
/ # date
Thu Apr 14 11:23:02 CST 2021
Alpine说明:
Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件。
Alpine 由非商业组织维护的,支持广泛场景的 Linux发行版,它特别为资深/重度Linux用户而优化,关注安全,性能和资源效能。Alpine 镜像可以适用于更多常用场景,并且是一个优秀的可以适用于生产的基础系统/环境。
Alpine Docker 镜像也继承了 Alpine Linux 发行版的这些优势。相比于其他 Docker 镜像,它的容量非常小,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 200 MB),且拥有非常友好的包管理机制。目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境。这样会带来诸多好处,包括镜像体积小,下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间。