Docker基础命令(三)

同步docker容器中的时间和本地时间一致

背景: 在很多时候, 训练模型的时候, 记录的log日志中标记的时间和实际的时间不一致, 往往是容器时间和本地时间不一致照成的.

方案

场景一: 正在运行的容器,可以宿主机直接执行命令给某个容器同步时间
#方法1  直接在宿主机操作
docker cp /etc/localtime 【容器ID或者NAME】:/etc/localtime
docker cp -L /usr/share/zoneinfo/Asia/Shanghai 【容器ID或者NAME】:/etc/localtime
 
#方法2  登录容器同步时区timezone,一般是因为时区不同导致时间差
ln -sf /usr/share/zoneinfo/Asia/Singapore /etc/localtime
场景二: Dockerfile解决方案
# 方法1
# 添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
 
# 方法2
# CentOS
RUN echo "Asia/shanghai" > /etc/timezone
# Ubuntu
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
场景三:初始化容器时,容器时间与宿主机同步,docker run 添加时间参数
docker  run -itd --privileged=true -v /etc/localtime:/etc/localtime:ro
#实例
docker  run -itd \
	-e MYSQL_ROOT_PASSWORD=123456 \
	-v /home/mysql/data:/var/lib/mysql \
	-v /home/mysql/log:/var/log/mysql \
	-v /home/mysql/etc/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
	-v /etc/localtime:/etc/localtime:ro \
	--name mysql-server \
	--network host \
	--restart=always \
	--privileged=true \
	mysql:5.7.37
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值