为什么要NTP服务

在搭建某些后台计算程序的时候,需要服务器的时间参与计算,这时候需要用到时间的统一

为什么要用docker搭建NTP服务器

如果服务器没有NTP server服务的情况下,编译安装NTP服务会比较麻烦,有时候会缺少各种类库,会比较头痛,使用docker部署,很轻松

可以使用docker-compose【docker-compose安装】运行ntp

sudo curl -L "https://github.com/docker/compose/releases/download/V2.3.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

参考docker-compose.yml配置文件

version: '3.4'

services:
  ntp:
    build: .
    image: cturra/ntp:latest
    container_name: ntp
    restart: always
    ports:
      - 123:123/udp
    read_only: true
    tmpfs:
      - /etc/chrony:rw,mode=1750
      - /run/chrony:rw,mode=1750
      - /var/lib/chrony:rw,mode=1750
    environment:
      - NTP_SERVERS=ntp1.aliyun.com
      - NTP_SERVERS=ntp2.aliyun.com
      - NTP_SERVERS=ntp3.aliyun.com
      - NTP_SERVERS=ntp4.aliyun.com
      - LOG_LEVEL=0
# pull from docker hub
$> docker pull cturra/ntp

# build ntp
$> docker-compose build ntp

# run ntp
$> docker-compose up -d ntp

# (optional) check the ntp logs
$> docker-compose logs ntp

验证:

测试您的NTP容器

您可以从任何具有ntpdate机器上使用以下命令查询新的NTP容器:

ntpdate -q 192.168.205.60


要查看容器ntp状态的详细信息,您可以在docker主机上使用以下命令进行检查:

docker exec ntp chronyc tracking