持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情
Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付应用、运行应用。 Docker允许用户将基础设施中的应用单独分割出来,形成更小的颗粒,从而提高交付软件的速度。 Docker容器与虚拟机类似,但二者在原理上不同。
说到Linux的时间,我们首先要先明确一个知识,那就是时区,时区是地球上不同区域使用同一个时间定义。为什么这么说,是因为在古代的时候,任务是通过观察太阳的位置(时角)来判断时间的,这就导致一个问题:不同经纬度的地方的时间是不同的,在1863年,世界上首次使用时区的概念。
在最近使用celery分布式异步任务执行框架的时候,就遇到了一个比较棘手的问题,怎么设置eta,通过datetime来设置开始时间的方法是,怎么都不奏效,后面反映过来默认时区的问题,rabbitmq没有设置时区,默认的时区是utc(于本初子午线(即经度0度)上的平均太阳时),所以就有了如下这篇文章的来由。
今天我们来介绍两钟修改docker时区的方法:
方法一
1、进入docker容器
docker exec -t -i *** /bin/bash // *** 为容器id
2、进入指定目录
cd /usr/share/zoneinfo/Asia
3、复制上海时区到 /etc 重命名localtime文件
copy Shanghai /etc/localtime
或者
cp -i Shanghai /etc/localtime
4、软连接
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、重启容器
方法二
1、进入到容器中
docker exec -it rabbitmq bin/bash
2、执行创建文件夹命令
mkdir -p /usr/share/zoneinfo/Asia
3、回到宿主机,执行以下命令
docker cp /usr/share/zoneinfo/Asia/Shanghai rabbitmq:/usr/share/zoneinfo/Asia
4、进入到容器中,执行以下命令
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、验证
date
很简单对不对,希望对你有用!