跳到主要内容

容器时间同步

容器时间同步

linux可以通过/etc/localtime这个符号链接进行时区设置

[17:30:48 root@VM-8-17-centos ~]#date
Thu May 26 17:31:24 CST 2022
[17:31:24 root@VM-8-17-centos ~]#docker exec -it ysmitm date
Thu May 26 09:31:31 UTC 2022
[17:31:31 root@VM-8-17-centos ~]#ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Mar 7 2019 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
[17:31:35 root@VM-8-17-centos ~]#docker exec -it ysmitm ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 May 9 00:00 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

方式一:启动容器时挂载宿主机的时间文件

-v /etc/localtime:/etc/localtime

方式二:dockerfile文件设置

#设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN /bin/ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改运行中容器的时间

容器内操作:删除原来的软链接,创建新的软链接(硬链接也可以)

[root@43183765c35b ~]# rm -f /etc/localtime
[root@43183765c35b ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@43183765c35b ~]# ll /etc/localtime
lrwxrwxrwx 1 root root 33 May 26 16:45 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai

ln -sf f参数可以直接替换原来的软链接

或者 宿主机操作:把宿主机的localtime软链接拷贝到容器

#docker cp /etc/localtime <容器>:/etc

软链接和硬链接

linux下创建硬链接相当于对源文件的拷贝,生成的新文件和源文件的inode值时一致的,当源文件删除后,硬链接不会失效。ln -s [源文件][软链接文件]

软连接类似于源文件的快捷方式,两者的inode不同,它里面保存的时源文件的路径信息,当源文件的删除消失后,软连接失效,此时如果在新建源文件,则软链接继续生效。ln -s [源文件][软链接文件]

# readlink <符号链接>查看指向