[Docker]build ntp server in Docker
@ GordonWei · Sunday, Sep 6, 2020 · 2 minute read · Update at Sep 6, 2020

因為工作的關係, 在將公司的一些服務Docker化.

今天做的是校時用的NTP Server.

首先是上去Docker Hub找有關NTPImage.

https://hub.docker.com/search?q=ntp&type=image

這邊看到的是下載率高, 又有在更新的Cturra/ntp

第一次試著run後發現他時區是用UTC, 但這個Image底層不是用弱弱常用的Ubuntu 或 CentOS.

# cat /etc/issue
Welcome to Alpine Linux 3.12
Kernel \r on an \m (\l)

查了一輪後才知道它安裝軟體是用apk.

第一時間覺得是Android的副檔名(誤)

這樣下來就可以準備Build Image啦.

首先先寫一個dockerfile檔案

dockerfile

FROM cturra/ntp
RUN apk add tzdata
RUN cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
RUN echo "Asia/Taipei" /etc/timezone
RUN date

寫好之後, 就可以下指令建立自己的image

docker image build -t test/ntp .

沒意外的話他應該會跳出下方資訊:

Sending build context to Docker daemon  2.048kB
Step 1/5 : FROM cturra/ntp
 ---> a13d83a9a5bc
Step 2/5 : RUN apk add tzdata
 ---> Running in a7cb1c788118
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/1) Installing tzdata (2020a-r0)
Executing busybox-1.31.1-r16.trigger
OK: 9 MiB in 17 packages
Removing intermediate container a7cb1c788118
 ---> 41b70cd1c899
Step 3/5 : RUN cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
 ---> Running in 8ba5745bc1ee
Removing intermediate container 8ba5745bc1ee
 ---> a580d0fc6988
Step 4/5 : RUN echo "Asia/Taipei" /etc/timezone
 ---> Running in ae2cd648703d
Asia/Taipei /etc/timezone
Removing intermediate container ae2cd648703d
 ---> 795470f0f0bd
Step 5/5 : RUN date
 ---> Running in 36fa66c812d0
Sun Sep  6 00:43:41 CST 2020
Removing intermediate container 36fa66c812d0
 ---> 14043710bfed
Successfully built 14043710bfed
Successfully tagged test/ntp:latest

這樣就表示做好了, 接著我們要自己開起來測試看看~

docker run --name ntp --cap-add=SYS_TIME -d -p 123:123/udp test/ntp

然後用docker ps去看狀態

docker ps                                                                                       wei@weizhongweide-MacBook-Air
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                  NAMES
dd7b264245f1        test/ntp            "/bin/sh /opt/startu…"   32 seconds ago      Up 31 seconds (healthy)   0.0.0.0:123->123/udp   ntpd

目前看起來是有在跑的, 最後我們就可以去看一下ntp的時間正不正確.

docker exec -it dd7b date
Sun Sep  6 00:49:28 CST 2020

到這邊就算做好自己專屬的image

後面看是要用docker-compose還是放上K8s都可以~

弱弱這邊有做好一份docker-compose的範例在git hub上, 大家可以參考.

傳送門

comments powered by Disqus

GordonWei's blog

4g-dongle 4g-lte 518 active-directory activity ad alcatel always-free amd-apu apache arm associate aws aws-cdk aws-certified aws-cli aws-efs aws-lex aws-nuke aws-s3 aws-saa aws-security aws-ssm aws-sso bind bind-view blog brew build-image catalina centos-7 centos7 cfn-flip change-swap chatbot clean-cache clean-resources cloudfront cups deeplearning delete-sns developer directory-service dlink-dcs930l docker docker-compose docker-error domain dvac01 ec2 ec2-mount-efs ec2-ssm error export-ovf fail2ban fat32-to-ntfs freeradius gcloud gcp gcp-change-account git git-error github github-error google-adsens google-cloud-platform grub hh41 homebridge homekit homekit-ui http https huawei-e3372 hugo hugo-blog hugo-post ios ios-run-python iphone-backup ipv6-apt iso-to-usb job-bank json json-dumps keras lambda latin ldap ldap3 letsencrypt likecoin linux linux-vnc lte-dongle mac mac-backup mail-server mi-home migration ms-ad multiple-account mysql mysql-error mysql-federated netapp npm npm-upgrade ntfs ntp-server oai on-premise openvpn openwebmail oracle-cloud orange-pi peering permission-deny pip-error pip-install printer python python-access-ad python-ftp python2 python3 radius radius-mysql radius3.0 raspberry-pi raspberry-pi-zero reset-password resize-img resize-sd-partition root router rpi-camera s3 s3-error s3-policy samba samba-error scs-c01 security selinux session-manage sns solution-architect-associate ssl ssm sysops system-manager systems-manager table-sync time-machine time_wait timezone tls typeerror ubuntu ubuntu-18.04 ubuntu16.04 uniout update-error usb usb-install vmware-player volume-lock vpc vpn vpn-server web-server win10 windows xiaomi yaml zimbra 廣告 永久免費 無法更新索引 燒光碟 自動搶 阿爾卡特
aws
gcp
iot
mac
oci

© 2020 GordonWei's Blog

Powered by Hugo with theme Dream.

Experience

2020 - Now / 趣遊科技 - 資深SRE工程師

2019 - 2020 / 104人力銀行 - DevOps 工程師

2018 - 2019 / 104人力銀行 - Net 工程師

2016 - 2018 / 全林實業股份有限公司 - 系統部協理

2015 – 2016 / 恩據優資訊工作室 – 負責人

2014 – 2015 / 安盟科技股份有限公司 – 資深IT工程師

2013 – 2014 / 上海鷺豐農業科技有限公司 – 系統工程師

2010 – 2012 / 104 人力銀行 – 維護工程師

2008 - 2009 / 典匠資訊 – MIS

Projects

  • 2019/09 - now 104人力銀行 - AWS Account 回收暨IaC專案
  • 2018/10 - 2018/12 104人力銀行 - DR Site 協助建置
  • 2018/03 - 2018/05 全林實業 - 工研院人臉辨識與使用者行為分析專案
  • 2018/04 - 2018/05 全林實業 - 嘉義公車站無線網路專案
  • 2017/06 - 2018/05 全林實業 - 新加坡無線網路專案
  • 2017/05 - 2018/05 全林實業 - 捷運無線網路專案
  • 2017/01 - 2017/04 全林實業 - 弋楊科技遊覽車專案
  • 2016/12 - 2017/04 全林實業 - 亞太好行網重構、建置
  • 2016/12 - 2017/02 全林實業 - 愛巴士無線網路專案
  • 2016/11 - 2017/01 全林實業 - 泰國Free AD Wifi專案
  • 2016/10 - 2016/12 全林實業 - 桃園客運無線網路專案
  • 2016/09 - 2016/12 全林實業 - 怡客咖啡廳無線網路專案
  • 2016/07 - 2017/07 全林實業 - 主要系統規劃、重構與建置
  • 2014/09 - 2015/04 安盟科技 - 機房架構規劃rebuild / CRM系統開發客製
  • 2013/07 – 2014/07 上海鷺豐農業科技 - 研發農業環境監控系統(Arduino)
  • 2011/11 – 2012/06 104人力銀行 - 協助導入虛擬化技術專案 (Citrix Xen Server、Desktop)

About

GordonWei

小弟是一位沒錢又沒閒的普通人, 只能靠自學以及不斷的實作來吸取經驗。

希望可以把自己的經驗留存下來,讓彼此的能力更進一步!!

認證