在使用Docker的时候,由于很多基础linux镜像都比较大,alpine这个仅仅几兆的linux基础镜像受到了很多人喜欢,笔者也不例外,可是由于alpine中的一些配置及命令与常见的centos等系统在一些方面不一样,下面来看看时区问题是如何解决的:

原因:alpine中,原生是不带时区相关的命令及文件的,需要安装额外的包来支持,然后需要将时区文件内容替换为localtime文件

解决办法

建议打造自己的alpine基础镜像,如下是我的alpine的Dockerfile:

 FROM alpine:3.4
MAINTAINER firewarm LightingLiu <liuyg@liuyingguang.cn> # Install root filesystem
ADD ./rootfs / # Install base packages
RUN apk update && apk add curl bash tree tzdata \
&& cp -r -f /usr/share/zoneinfo/Hongkong /etc/localtime \
&& echo -ne "Alpine Linux 3.4 image. (`uname -rsv`)\n" >> /root/.built
# Define bash as default command
CMD ["/bin/bash"]

当这个镜像完成以后,不需要配置任何环境变量即可使用京八区的时区及时间

参考文章

https://bugs.alpinelinux.org/issues/5543

参考的源代码

 docker run -it --rm alpine /bin/sh
/ # date
Sun May :: UTC
/ # apk add -U tzdata
fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/community/x86_64/APKINDEX.tar.gz
(/) Installing tzdata (2015g-r0)
Executing busybox-1.24.-r7.trigger
OK: MiB in packages
/ # cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
/ # date
Sun May :: CEST
/ #

docker 下 alpine 镜像设置时区的有效办法的更多相关文章

  1. 删除docker下的镜像

    先显示一下docker中的镜像 删除镜像 先停止这个容器 删除容器 再删除镜像就可以啦!

  2. docker下debian镜像开启ssh, 允许root用密码登录

    用的官方python镜像做开发, 暴露端口, 用pycharm ssh进去开发. 忽然发现本来ssh能连上, 但是更了新的python镜像连不上了. 有折腾了一下, 连上了. 主要是python官网镜 ...

  3. docker下MySQL镜像的使用方法

    预习: 使用到的docker命令: docker images   显示本地有的镜像 docker pull +镜像名称   从docker hub上面拉取镜像 docker run    --nam ...

  4. 2.docker下centos镜像

    1.下载并运行 # 交互模式下载并运行centos容器 $ docker run -it centos:latest /bin/bash 1.1 配置centos的环境别名 $ vi /etc/bas ...

  5. Docker之Alpine制作jre镜像(瘦身)+自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  6. 【URLOS开发入门】docker官方系统镜像——Alpine入门教程

    我们在进行URLOS应用开发时,经常会用到一些基础系统镜像,如:ubuntu.CentOS.Debian等,我们可以通过docker pull命令直接拉取官方镜像. root@ubuntu:~# do ...

  7. 一个带bash,带glibc,中国时区,非root用户可运行crond命令的基于alpine镜像的Dockerfile

    这个镜像现在说起来简单, 带bash(增加执行脚本的兼容性,带GLIBC,中国时区,非root用户可运行crond命令-安全) 但让我开始陷入时,真的让我有段时间有点爆了. 比如,将filebeat文 ...

  8. Docker之Alpine制作镜像且上传至阿里云

    目的: Alpine制作jdk镜像 Alpine制作jre镜像(瘦身) Docker镜像上传至阿里云 Alpine制作jdk镜像 alpine Linux简介 Alpine Linux是一个轻型Lin ...

  9. Dockerfile设置时区alpine

    背景: 最近在写golang相关代码.其中用到了时间操作的相关函数,如下: nowTime := time.Now() nUnixEndTime := nowTime.Unix() nHour, nM ...

随机推荐

  1. dell 1464 升级固态硬盘ssd 记录

    2010年买的Dell 1464(i5 M430)用了4年多,感觉这款机器各方面性能还不错,决定给它升升级.目前笔记本最大的瓶颈应该出在机械硬盘的速度上,于是撑着双十一促销之际买了一块PLEXTOR/ ...

  2. DTO的一些理解(转载)

    1.什么是DTO DTO(Data Tansfer Object)即数据传输对象.之前不明白有些框架中为什么要专门定义DTO来绑定表现层中的数据,为什么不能直接用实体模型呢,有了DTO同时还要维护DT ...

  3. nose的setup和teardown

    参考:http://blog.csdn.net/linda1000/article/details/8533349 1.模块的setUp和tearDown def setUp(): print &qu ...

  4. flume学习(三):flume将log4j日志数据写入到hdfs(转)

    原文链接:flume学习(三):flume将log4j日志数据写入到hdfs 在第一篇文章中我们是将log4j的日志输出到了agent的日志文件当中.配置文件如下: tier1.sources=sou ...

  5. Centos 7 配置 VNCServer 經驗

    安裝 Centos 7後, 習慣性的安裝  Xmanager 3或4, 都不能正常工作, 無奈之下開始安裝 VNCServer. (個人習慣使用Xmanager, 因為不需要安裝,只要配置一下就能用, ...

  6. 使用百度地图API实现轨迹回放

    调用百度地图API实现路线的轨迹回放功能其实很简单,只要搞懂以下几点即可: 1.需要用Polyline方法先绘制好路线图 2.用Marker添加标注点 3.关键一步,通过结合定时器,使用Marker创 ...

  7. es修改索引副本个数

    es修改索引副本个数 PUT index01/_settings { "number_of_replicas": 2 }

  8. Java开发新手经常遇到的一些问题

    A:java.lang.UnsupportedClassVersionError: Bad version number in .class file 解答:导致此问题的原因是Tomcat运行的JDK ...

  9. 性能调优的Windows窗体DataGridView控件

    性能调优的Windows窗体DataGridView控件 . 净框架4.5     在处理大量数据时, DataGridView 控制可以消耗大量的内存开销,除非你仔细地使用它. 在客户有限的内存,你 ...

  10. notepad++列模式

    考虑下面的情况: 已有 AAA BBB CCC 和 aaa bbb ccc 想合并为 AAA aaa BBB bbb CCC ccc 在大写后面,列模式,复制小写,粘贴,结果不是如下: AAA aaa ...