在 Java 开发中使用 Docker 镜像时,由于 alpine 提供的 linux 环境的镜像特别的小,只有 5M 左右,集成 openjdk 后的大小也在 100M 以内,因此应用非常广泛,在 Docker Hub 有大量基于 alpine 的镜像。

但是所有基于 alpine 的镜像使用的都是默认时区,因此在使用时,要对时区进行修改。

时区地图

https://www.timeanddate.com/time/map/

查看日期

首先可以进入 alpine 的镜像(默认 /bin/sh)查看日期:

[root@k8s-master openjdk8]# docker run -i -t --rm alpine:3.9
/ # date -R
Thu, 14 Feb 2019 05:59:48 +0000

修改日期

参考:https://wiki.alpinelinux.org/wiki/Setting_the_timezone

先在容器按照上述参考文档,修改查看是否有效。

实验

在前面进入的容器中,按顺序执行下面的命令:

# 安装时区设置
apk add tzdata
# 复制上海时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 指定为上海时区
echo "Asia/Shanghai" > /etc/timezone
# 验证
date -R
# 输出,和当前时间对比
Thu, 14 Feb 2019 14:01:02 +0800
# 删除其他时区配置,节省空间
apk del tzdata

通过实验发现该方法可行,下面针对镜像(而不是镜像实例)进行修改。

修改

FROM alpine:3.9# 设置时区为上海
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone \&& apk del tzdata

保存为 Dockerfile 文件,在 Dockerfile 目录执行命令构建镜像:

docker build -t alpine-sh:3.9 .

通过上述方式创建后的镜像仍然很少,而且是符合需要的时区。

基于 alpine 的其他镜像的修改

例如 openjdk:8u191-jre-alpine3.9 是一个基于 alpine 的镜像。

openjdk:8u191-jre-alpine3.9 Dockerfile 地址:
https://github.com/docker-library/openjdk/tree/d93be18f4f2d5e8457169cac00e559d953b6028e/8/jre/alpine

openjdk:8u191-jre-alpine3.9 镜像中的时区也存在问题。

修改方式一

下载上面提供的 Dockerfile,稍作修改即可实现时区的定制:

# 使用前面刚刚创建的 alpine-sh:3.9 即可修改时区
FROM alpine-sh:3.9# 其他不变,全部省略

修改方式二

或者参考前面 alpine 的修改:

FROM openjdk:8u191-jre-alpine3.9# 设置时区为上海
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone \&& apk del tzdata

所有基于 alpine 的镜像都可以采用类似的方法进行修改。

其他系统

例如 Docker 官方提供的 mysql

https://github.com/docker-library/mysql/tree/master/5.6

可以先进系统看时区,以及是否存在时区的配置文件,存在的情况下,直接修改即可。示例如下:

FROM 10.10.1.243:5000/mysql:5.6.43RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone

Docker 镜像,基于 alpine 系统的时区配置相关推荐

  1. alpine linux时区,Docker 镜像,基于 alpine 系统的时区配置

    在 Java 开发中使用 Docker 镜像时,由于 alpine 提供的 linux 环境的镜像特别的小,只有 5M 左右,集成 openjdk 后的大小也在 100M 以内,因此应用非常广泛,在 ...

  2. 构建haproxy镜像(基于alpine系统)

    拉取alpine系统镜像 [root@localhost ~]# docker pull alpine Using default tag: latest latest: Pulling from l ...

  3. Docker镜像仓库Harbor之搭建及配置

    Docker镜像仓库Harbor之搭建及配置 1.Harbor 介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署 ...

  4. docker制作nginx+nginx-module-vts镜像基于alpine镜像

    本文参考配置https://github.com/Parli/nginx-vts-docker 稍作修改 搜索到的docker镜像nginx版本比较低,为1.11,1.13,这里用的nginx版本为1 ...

  5. docker镜像仓库habor1.10.0安装配置-单机版

    habor1.10.0安装配置 前言 一.安装docker 二.harbor安装与简单配置 1. 下载指定版本harbor 2. harbor简单配置 三.配置harbor前面的nginx 1. 添加 ...

  6. Linux安装Docker并配置Docker镜像加速,daemon.json完整配置详解

    文章目录

  7. 02.docker镜像的区别--Alpine、Slim、Stretch、Buster、Jessie、Bullseye

    原文链接 如果您像我一样,第一次创建Dockerfile并从DockerHub页面中选择镜像时,您会彻底困惑.有时候,像这样的选择会让我们的行动停滞不前,所以也许我们只是用标准的镜像,避免深入研究,这 ...

  8. 根据镜像安装oracle插件,docker镜像alpine中安装oracle客户端

    1.背景 有项目需使用python连接oracle数据库,然后查询一些数据进行分析.在安装oracle客户端驱动过程中遇到了一些问题,在此记录下来分享读者. 一点限制: oracle数据库与本应用程序 ...

  9. x86 下制作 ARM Docker 镜像,Docker Hub、Travis 自动构建 qemu-user-static

    一般情况下,Docker 的镜像都是在一个已有的镜像内,一步步运行给定的命令,从而生成一个新的镜像.这样的步骤在大多数人使用的 x86 架构计算机上都不是问题,由于架构互相兼容,一台计算机上生成的镜像 ...

最新文章

  1. 接口级故障的应对方法
  2. cdh 安装_使用Cloudera的CDH部署Hadoop:第三步,安装管理平台和数据库
  3. Excel之抽奖器实现
  4. MySQl的一些基本知识(1)
  5. keil3如何放大字体_国潮海报不会做?送你国风字体+图案笔刷+PSD素材+包装样机...
  6. MachineLearning(12)- RNN-LSTM-tf.nn.rnn_cell
  7. 微型计算机计算机钢琴,微型计算机原理及接口技术钢琴课程设计.doc
  8. 中国计算机学会第七届全国Web信息系统及其应用学术会议(WISA2010)征文通知
  9. 创下新的纪录 京东618累计下单金额超3438亿元
  10. 搭建无人值守安装服务器
  11. [国家集训队]聪聪可可
  12. 解析ES6箭头函数中的this
  13. windows配置jdk环境变量、mysql环境变量、tomcat环境变量、maven环境变量、git环境变量、node环境变量
  14. matlab自适应高斯核
  15. 一般线性模型和混合线性模型_从零开始的线性混合模型
  16. 115、神州数码交换机配置基本命令
  17. project 2016 显示、取消任务序号
  18. 使用计算机时注意的,使用计算机时注意几点预防“鼠标手”
  19. html语言中kbd的含义,HTML: kbd 标签
  20. 11个你不应该错过的JavaScript库

热门文章

  1. Open3D RANSAC拟合空间直线
  2. 打孔纸带计算机运行原理
  3. Openlayers 图形要素 Feature 移动和编辑
  4. PHP编码规范【json159】
  5. 用 Python 从 GFF3 格式文件中查找注释信息
  6. 关于CSDN云主机从购买到上手体验的真实感受与些许建议 | CSDN开发云
  7. 东京工业大学计算机博士要求,东京工业大学计算机专业博士成功申请案例
  8. 一个IT人的咖啡爱情
  9. git总结:如何从master分支创建自己的分支
  10. 手把手玩转KVM虚拟化--KVM网络管理