在给Java程序封装镜像时,使用的基础镜像动辄上百M,还需要每次部署的时候挂载时区等问题,不如自己封装一个镜像,供之后使用。
这里使用Alpine Linux(3.9) 安装OpenJDK 1.8及部分常用工具并修改时区:
-
拉取alpine镜像
-
# docker pull alpine
-
运行并进入容器
-
# docker run -itd --name alpine-java alpine
-
# docker exec -it alpine-java sh
-
安装OpenJDK等
-
# apk update
-
# apk add openjdk8 busybox tzdata curl
-
修改时间
-
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
-
# date
-
这里系统时间虽然修改过来了,但是之后运行Java程序时,时间任然相差8小时,所以需要添加如下
-
修改Java时区
-
# echo Asia/Shanghai > /etc/timezone
-
# apk del tzdata
-
# rm -rf /tmp/* /var/cache/apk/*
-
封装镜像并推送到仓库
-
# docker commit alpine-java ×××debiaobiao/alpine-java
-
# docker push ×××debiaobiao/alpine-java
懒的朋友可以直接拉做好的:
docker pull ×××debiaobiao/alpine-java
Dockerfile:
-
From alpine
-
MAINTAINER ×××debiaobiao
-
RUN apk update && \
-
apk add openjdk8 curl busybox tzdata && \
-
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
-
echo Asia/Shanghai > /etc/timezone && \
-
apk del tzdata && \
-
rm -rf /tmp/* /var/cache/apk/*