docker registry鏡像容器時區時間同步

  docker registry鏡像2.5/2.6版本均基於alpine:3.4製做。若想進入容器可以使用 docker exec -it [容器ID等] /bin/sh。linux

  Alpine Linux Docker鏡像基於Alpine Linux操做系統,後者是一個面向安全的輕型Linux發行版。不一樣於一般Linux發行版,Alpine Linux採用了musl libc和busybox以減少系統的體積和運行時資源消耗。在保持瘦身的同時,Alpine Linux還提供了本身的包管理工具apk。Alpine Linux Docker鏡像也繼承了Alpine Linux發行版的這些優點。相比於其餘Docker鏡像,它的容量很是小,僅僅只有5M,且擁有很是友好的包管理器。有消息說Docker官方鏡像將會使用Alpine Linux替換Ubuntu。須要注意的是 Alpine Linux使用了musl,可能和其餘Linux發行版使用的glibc實現會有些不一樣,並且musl實現的DNS服務不會使用resolv.conf文件中的search和domain兩個配置,經過DNS來進行服務發現時須要注意。docker

  Alpine Linux Docker鏡像中默認是不帶時區相關的命令及文件的,須要安裝額外的包tzdate來支持。安全

方法一 容器內部時區同步dom

  # docker ps -a                 //查看registry鏡像容器Idtcp

    CONTAINERID IMAGE   COMMAND       CREATED     STATUS    PORTS         NAMES工具

    fc05bb235d29  registry:2   "/entrypoint.sh /etc/"   10 weeks ago    Up 8 weeks   0.0.0.0:5000->5000/tcp   registry-srv操作系統

  # docker exec -it  fc05bb235d29   /bin/sh  //進入容器內部,alpine系統使用/bin/sh.net

  ~ # apk add --no-cache tzdata          //安裝時區相關包htm

  ~ # echo "Asiz/Shanghai" > /etc/timezoneblog

  ~ # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  ~ # date
    Mon Aug 28 15:45:37 CST 2017

方法二 dockerfile修改 鏡像構建

1 修改dockerfile

  #定義環境變量

  ENV  TIME_ZONE Asia/Shanghai
  #dockerfile增長命令
  RUN apk add --no-cache tzdata  \ //安裝tzdata安裝包

    && echo "${TIME_ZONE}" > /etc/timezone \   //設置時區
    && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime 

2 宿主機時區及時間檢查

檢查宿主機時間及時間是否正確,使用如下命令:

[root@docker ~]# timedatectl
      Local time: Tue 2016-12-13 21:52:13 EST
  Universal time: Wed 2016-12-14 02:52:13 UTC
        RTC time: Wed 2016-12-14 02:52:13
      Time zone: America/New_York (EST, -0500)  //默認爲西五區
    NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
      DST active: no
Last DST change: DST ended at
                  Sun 2016-11-06 01:59:59 EDT
                  Sun 2016-11-06 01:00:00 EST
Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2017-03-12 01:59:59 EST
                  Sun 2017-03-12 03:00:00 EDT
#修改成東八區
[root@docker ~]# timedatectl set-timezone Asia/Shanghai
 Local time: Wed 2016-12-14 10:53:10 CST
  Universal time: Wed 2016-12-14 02:53:10 UTC
        RTC time: Wed 2016-12-14 02:53:10
      Time zone: Asia/Shanghai (CST, +0800)
    NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
      DST active: n/a
[root@docker ~]# date
Wed Dec 14 10:53:49 CST 2016
#調整時間
[root@docker ~]# date -s "2016-12-13 21:54:20"
#時間同步,不執行則沒法生效
[root@docker ~]# clock -w 
[root@docker ~]# timedatectl
      Local time: Tue 2016-12-13 22:59:44 CST
  Universal time: Tue 2016-12-13 14:59:44 UTC
        RTC time: Tue 2016-12-13 14:59:44
      Time zone: Asia/Shanghai (CST, +0800)
    NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
      DST active: n/a
```

至此宿主機時區及時間調整完畢。

參考文件:Docker系列之(三):Docker微容器Alpine Linux

     解決Docker容器時區及時間不一樣步問題

相關文章
相關標籤/搜索