我们打包镜像时使用的基础镜像基本上都是采用UTC(格林时间),与我们常用的北京(上海)时间(CST)相差8个小时。我们可以在创建一个容器的时候,将宿主机时区相关的目录文件挂在到容器上:

docker run --rm -it -v /etc/localtime:/etc/localtime ubuntu
# 进入容器,date测试
root@3e6c1d137e02:/# date
Mon Aug  5 15:26:20 CST 2017

这种方法相对麻烦,每次新建容器都需要挂载宿主机器时区相关的配置目录/文件。为了简化这一步,可以通过Dockerfile打包新的镜像,修改容器的默认时区。 下面分三个基础系统镜像分别实现:

Ubuntu

使用ubuntu作为基础镜像,需要先下载安装tzdata包,默认时区是UTC时区,修改配置文件,并通过dpkg-reconfigure重置时区配置生效。 安装完成之后,为了尽量减少镜像体力,删除安装过程中产生的各种非必要文件。

FROM ubuntuMAINTAINER fastjrunENV TIME_ZONE Asia/ShanghaiRUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \&& apt-get update \&& apt-get install -y tzdata \&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone \&& dpkg-reconfigure -f noninteractive tzdata \&& apt-get clean \&& rm -rf /tmp/* /var/cache/* /usr/share/doc/* /usr/share/man/* /var/lib/apt/lists/*

Alphine

Alphine号称最小的Linux系统镜像(才5M), 先采用apk包管理器来安装tzdata包,设置相关配置文件。

FROM alpine
MAINTAINER igitlibRUN apk add --no-cache tzdata \&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone \&& apk del tzdata

Centos

centos就相对很简单,只需要添加配置文件即可。

FROM centosENV TIME_ZONE Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime

[转帖]Dockerfile设置默认时区相关推荐

  1. 一、MySQL数据库设置默认时区

    打开CMD将工作目录切换到MySQL的bin下 cd F:\mysql-5.7.21-winx64\binmysql -u root -p输入密码即可登陆MySQLselect now(); 查看my ...

  2. linux设置默认时区,关于linux:如何修改-Linux-默认时区

    在上一篇笔记中,咱们晓得了如何在Linux 中查看零碎默认时区,这篇笔记来学习以下如何批改默认时区. 在Linux 服务器或零碎上放弃正确的工夫始终是一个好习惯,它可能具备以下长处: 因为Linux ...

  3. Android系统之路(初识MTK) ------ 设置系统默认语言/客制化可选语言/设置默认时区

    在这一版本的平板系统定制中,客户需要定制系统默认语言,默认英语,可选语种分别是 语言代码      国家/地区 bn_BD      孟加拉语(孟加拉) en_US      英文  ar       ...

  4. dayjs Timezone 设置默认时区

    根据dayjs文档,指定时区需要依赖Timezone插件 导入相关文件 import dayjs from 'dayjs' import tz from 'dayjs/plugin/timezone' ...

  5. android中设置默认语言、默认时区

    1. 设置默认时区: /build/tools/buildinfo.sh安卓本来应该在这里面加: +    echo "persist.sys.timezone=XXX"      ...

  6. php设置pst时区,PHP时区标识符含义

    php常用时区标识符 Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi(依次为重庆,上海,乌鲁木齐) 港台地区可用:Asia/Macao ,Asia/Hong_Ko ...

  7. Android默认时区、语言设置

    1.设置系统时区: PRODUCT_PROPERTY_OVERRIDES += \         persist.sys.timezone=Asia/Shanghai\ AlarmManager m ...

  8. Debian11.5 最小化安装后更改主机名、安装桌面、设置默认语言、时区、静态IP、局域网DNS等

    最小化安装,指的是采用 debian-11.5.0-amd64-netinst.iso  382.0 MiB  2022-09-10 20:40 这个只有 382M的镜像,仅安装了 ssh 服务的状态 ...

  9. mysql 时区设定_设置MySQL默认时区

    MySQL默认的时区是UTC时区,比北京时间晚8个小时. 假设日志里面的时间是中午12:00,那么北京时间应该是晚上的8:00点钟. 为方便查看和设置时间,我们要设置MySQL的默认时区,以符合本地使 ...

  10. Android 11.0 设置默认8时区和默认24小时制

    目录 1.概述 2.设置默认8时区和默认24小时制的核心类 3.设置默认8时区和默认24小时制的核

最新文章

  1. php源代码序列号,php如何生成不重复的序列号
  2. dp、sp和px的区别
  3. DWORD dwSendTime =::GetTickCount();
  4. python中字符串有什么组成_python字符串操作
  5. 计算机网络·物理层练习题
  6. 如何从SAP中连接其他数据库
  7. Python科学计算(一)环境简介——Anaconda Python
  8. python编写代码时零_python – KeyError:运行打包代码时为0L
  9. 菜鸟驿站:今年双11期间全国站点将普遍延长营业时间
  10. 四十三 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理...
  11. vue使用contenteditable 实现光标处插入自定义图片
  12. Windows下Mysql完全卸载教程
  13. Differentially Private Asynchronous Federated Learning for Mobile Edge Computing in Urban Informatic
  14. RPLIDAR A2 Windows 下开发
  15. [应用抓包] r0capture应用层通用抓包使用文档
  16. android获取本地连接ip地址,参照第二步将本地连接改成自动获取IP地址即可
  17. 数学与应用数学专业考计算机研究生,数学与应用数学专业学生考研有哪些方向 数学与应用数学专业学生考研方向是怎样的...
  18. 如何解除80端口被占用
  19. java架构师应该懂得技术
  20. FAST-LIVO论文翻译

热门文章

  1. chromium浏览器定制 | 高匿名爬虫随机指纹
  2. [已解决]VitrualBox 启动linux虚拟机后,无法访问网络解决方法
  3. [FAQ10781]如何开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证)
  4. 题解 [LuoguP5560][Celeste-B]Golden Feather
  5. java触屏改_一个JAVA游戏改键改触屏的教程!
  6. c语言 修正正弦曲线,[原创]正弦曲线
  7. 嵌入式ERPC框架正式发布了
  8. HTML-滚动字幕的源代码(可作滚动公告)
  9. sms 验证码 接收
  10. Word文档转PDF的方法有哪些?我们如何Word转PDF?