docker ntp使用本地时间

# 获取ntpd镜像
docker pull seznam/ntpd
# 启动ntpd服务
docker run -d --net=host --name ntpd seznam/ntpd
# 进入容器内部,修改配置文件
docker exec -it ntpd bash
vi /etc/ntp.conf
# 添加时间服务器地址,如果内网有时间服务器,填写改地址,如果没有,添加下面的地址,同步本地时间
restrict default nomodify notrap noquery
restrict 127.0.0.1
restrict 192.168.0.0 mask 255.255.255.0 nomodify
restrict 10.10.10.0 mask 255.255.255.0 nomodify
#server 0.pool.ntp.org
#server 1.pool.ntp.org
#server 2.pool.ntp.org
server 127.127.1.0    # local clock
fudge  127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

# 重启容器
docker restart ntpd
# 同步客户机时间
ntpdate x.x.x.x (等待时间服务器10分钟后,执行这里)
# 设置定时任务
crontab -e
00 2 * * * ntpdate x.x.x.x (每天凌晨2点执行此命令)

注意事项

1.mac和window 不支持--net=host,所以需要在linux服务器上搭建

2.mac ntp同步命令

sudo sntp -sS x.x.x.x

3.可以使用ntpdate -d x.x.x.x 调试

4.如果出现 the NTP socket is in use, exiting错误

您收到此错误消息的原因是由于 xntpd 已经绑定到了该 Socket。运行 ntpdate 时,它会首先进行广播,然后侦听端口 123。如果 xntpd 正在运行,而有一个进程已经在侦听该端口了,则会使 ntpdate 无法在上面运行。运行下列命令,即可找出 xntpd 的 PID
[root@123]# ps -ef|grep xntpd
root     124185   6192  0 15:49 pts/1    00:00:00 grep xntpd
可惜没有找到pid。

使用lsof –i:123

没有lsof命令的话:yum install -y lsof
lsof -i:123
kill -9 pid

ntpdate x.x.x.x


清除 (Kill) 该进程,然后尝试再次与 ntp 服务器进行同步。此时您不应该收到此错误消息。
请注意,如果您尝试与之同步的服务器没有运行 xntpd,则会收到下列错误消息:
ntpdate[12573]: no server suitable for synchronization found
出现这种情况的原因是,如果您想使用另一个服务器的时间,该服务器必须已经进行了自身同步。

Linux修改系统时间

修改日期:
时间设定成2023年5月10日的命令如下:
#date -s

05/10/2023
修改时间:
将系统时间设定成上午10点18分0秒的命令如下。
#date -s 10:18:00

修改时区:
找到相应的时区文件
/usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime。

修改/etc/sysconfig/clock文件的内容为:

ZONE=”Asia/Shanghai”
UTC=false
ARC=false

### Docker Pull 过程中的时间同步问题及解决方案 当遇到Docker pull命令执行缓慢或失败的情况时,除了常见的服务器DNS无法解析和docker源存在问题外,系统的时间设置不正确也可能是一个潜在因素。如果主机时间和容器内的时间不同步,可能会引发SSL证书验证错误等问题,进而影响到镜像拉取过程。 对于Ubuntu 20.04及以上版本,在处理这类由时间不同步引起的问题时,可以采取如下措施来确保系统的日期/时间配置准确无误: #### 配置NTP服务以保持时间同步 安装`ntp`包可以帮助维持本地计算机与时钟服务器之间的一致性。通过定期调整系统时钟,减少由于时间差异带来的各种麻烦[^1]。 ```bash sudo apt-get update && sudo apt-get install ntp -y ``` 启动并启用NTP服务,使其随操作系统自动运行: ```bash sudo systemctl start ntp sudo systemctl enable ntp ``` 检查当前的网络时间协议(NTP)状态,确认客户端已成功连接至远程时间服务器: ```bash ntpq -p ``` #### 修改Docker守护程序配置文件实现更精确控制 为了进一步提高准确性,可以在Docker守护进程级别指定额外参数用于强制使用特定的时间服务器进行同步操作。编辑位于 `/etc/docker/daemon.json` 的JSON格式配置文件,加入下面所示的内容(注意替换为你自己的首选NTP服务器地址): ```json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }, "exec-opts": ["native.cgroupdriver=systemd"], "dns": ["8.8.8.8", "8.8.4.4"], "default-ulimits": {"nofile":{"Name":"nofile","Hard":65535,"Soft":65535}}, "time": "pool.ntp.org" } ``` 重启Docker服务使更改生效: ```bash sudo systemctl restart docker ``` 完成上述步骤之后再次尝试执行docker pull命令应该能够有效改善因为时间不同步所造成的各类异常状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_Hungry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值