Appearance
Docker容器时区设置
查看时区
bash
# 查看时区
ls -al /etc/localtime
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
首先,在宿主机上执行【date】命令,查看宿主机的时间。
利用【docker exec -u 0 -it 容器ID /bin/bash】命令进入Docker容器内,执行【date】命令查看Docker容器内的时间。这里是执行好之后的效果。
方法一:在【宿主机】中执行命令,【docker cp /etc/localtime 容器ID:/etc/localtime】,重启Docker容器。
方法二:在【宿主机】中执行命令,【docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID:/etc/localtime】,重启Docker容器。
方法三:在【容器】中执行命令,【ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime】,重启Docker容器。
同步时间
bash
# 安装工具 ntpdate
yum install ntpdate -y
# 同步时间
ntpdate cn.pool.ntp.org
# ntpdate简单用法:
# ntpdate ip
# ntpdate cn.pool.ntp.org
# ntpdate -u cn.pool.ntp.org :网络时间同步命令
# 注意:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
# -u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
如果不管用
bash
# 直接用宿主机器上的时区默认覆盖容器内的时区配置文件即可,也就是跟宿主机器同样的时区配置
docker run -v /etc/localtime:/etc/localtime:ro --name=tomcat tomcat:8.0.35-jre8
# 这里配置的环境变量 Asia/Shanghai就是我所需要的时区
docker run -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro --name=tomcat tomcat:8.0.35-jre8
ntp常用服务器
国内:
- cn.pool.ntp.org 中国开源免费NTP服务器
- ntp1.aliyun.com 阿里云NTP服务器
- ntp2.aliyun.com 阿里云NTP服务器
- time1.aliyun.com 阿里云NTP服务器
- time2.aliyun.com 阿里云NTP服务器
国外:
- time1.apple.com 苹果NTP服务器
- time2.apple.com 苹果NTP服务器
- time3.apple.com 苹果NTP服务器
- time4.apple.com 苹果NTP服务器
- time5.apple.com 苹果NTP服务器
- time1.google.com 谷歌NTP服务器
- time2.google.com 谷歌NTP服务器
- time3.google.com 谷歌NTP服务器
- time4.google.com 谷歌NTP服务器
- pool.ntp.org 开源免费NTP服务器
定时同步
bash
echo "*/20 * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null &" >> /var/spool/cron/root