在实际工作中,我们可能在内网需要一个ntp的时间服务器来同步时间,那么准备一台docker的时间服务器是很有必要的,至于为什么要用docker部署,这里就不多做说明了
快速部署
curl -Lk https://raw.githubusercontent.com/LinuxEA-Mark/docker-ntp/master/create_ntp.sh|bash
Dockerfile
仍然使用centos作为基础镜像,直接yum安装即可,而后下载gitalb上的配置文件和启动脚本
FROM centos
MAINTAINER www.linuxea.com mark
RUN yum install ntp curl -y && rm -rf /etc/ntp.conf
#&& curl -Lks4 https://raw.githubusercontent.com/LinuxEA-Mark/docker-ntp/master/ntp.conf -o /etc/ntp.conf
&& curl -Lks4 https://raw.githubusercontent.com/LinuxEA-Mark/docker-ntp/master/start.sh -o /start.sh && mkdir /data
&& yum clean all && chmod +x /start.sh
ENTRYPOINT ["/start.sh"]
启动脚本:
如果ntp.conf不存在这下载文件并且启动,如果存在则每次启动即可
#!/bin/bash
directory="/data/ntp.conf"
if [ "$(ls $directory)" ]; then
/usr/sbin/ntpd -c /data/ntp.conf -p /tmp/ntpd.pid -d
else
curl -Lks4 https://raw.githubusercontent.com/LinuxEA-Mark/docker-ntp/master/ntp.conf -o /data/ntp.conf
/usr/sbin/ntpd -c /data/ntp.conf -p /tmp/ntpd.pid -d
fi
ntp.conf
在conf文件中我们需要注意restrict 10.10.0.0 mask 255.0.0.0 nomodify notrap
这里的ip则是可以允许的ip
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#restrict default nomodify
#restrict 210.72.145.44
#restrict 133.100.11.8
restrict 127.0.0.1
restrict -6 ::1
restrict 10.10.0.0 mask 255.0.0.0 nomodify notrap
server 2.cn.pool.ntp.org prefer
server 1.cn.pool.ntp.org
#driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
logfile /data/ntp.log
docker-compose
将data目录挂载,其中有日志文件和配置文件,比较省事就路径一致了
version: '2'
services:
ntp:
build:
context: https://raw.githubusercontent.com/LinuxEA-Mark/docker-ntp/master/Dockerfile
container_name: ntp
restart: always
privileged: true
network_mode: "host"
volumes:
- /data/docker/ntp:/data
日志如下: