怎么处理sqlserver2017部署在winowsDocker上时区无法修改成功的方式,并且可以多创建新的容器调用简单的方式直接使用!

在创建该容器的时候我们执行的语句中添加了一个

从图中所看到的内容,上海时区,按照正常流程一般都是可疑正常执行的,但最后事情并不是我们所想的那么简单。
我们进入对应的容器里面
,执行语句之后查找对应的文件夹,
找到sys文件夹,cd到该目录下,随后执行
发现没有localtime这个目录
,而我们所修改时区的信息都是在这个目录下的。这时该怎么办呢?

我们查询网上的信息去下载
结果发现不能下载。。。。。但这里需要知名一下,apt install tzdata,这个指令才是对的,因为更新了阿里源之后,发现指令只有tzdata,没有tzdate。。。。。
中间尝试的步骤就省略吧,直接开始重要的几个步骤:
1.查看当前的系统是什么,
执行之后发现是Ubuntu的。
2.我们想下载或执行更新,无法找到源文件。本来想在容器里直接vim创建执行,结果发现vim也没有,无法执行。这时我们想了一个简单的方式,就是copy。
我们从网上查找了源
把加入的内容进行了拷贝,复制到文本中,修改后文件名改为sources.list(包含后辍名的)。需要下载和复制的地址:https://www.cnblogs.com/walblog/p/9062754.html;感谢这位伙伴分享到的阿里源信息。将已经准备好的源文件拷贝进容器中的文件里
3.执行完毕之后,我们需要再进入容器进行操作:
找到了源文件,随后执行
在源文件的目录下执行更新语句,从截图中可疑发现执行有了动静,说明整个流程正常在走。
4.执行安装时区信息的语句:

结果有了动静。我们再查询时区映射的路径发现已经可以访问了
5:我们需要将时区改为我们所处的时区,执行如果的命令
我们发现了所有相关的时区信息,我们选择了Asia,进入之后再寻找相关中国时区的地区信息,
选择完China之后我们再选择beijing,然后一路高歌到了最后一个确认这里,它通过网络查询到是上海时区信息,那么我们当然确认上海的信息了。确认完毕,我们查看容器时间,时间已经修改了,与我服务器上的时间显示一致。

大家明白了吗?这里一个很麻烦的事,幸亏有一个经常使用docker的李工在,要不了我就完全凉凉,无法修改。。。。。得感谢我们公司里的李工的帮忙!

继续新的内容方式进行新说明:
首先第一次我们没有安装过时区包信息的时候,我们必须按照上面的方式进行下载好我们需要的时区包信息。这个时候我们有新的容器创建,那么我们就会考虑新的容器难道我们又得继续前面的步骤了吗?其实不用。。。。。
首先我们将当前容器中下载的时区包拷贝到本地的文件夹中。
语句:

docker cp 容器中时区文件包路径(usr/share/zoneinfo) 本地的需要拷贝到的位置

然后执行完该语句之后,我们就可以看到对应的文件夹中有我们下载来的时区包的信息。这时我们创建新的容器的时候,只需要添加映射就行了

-v 本地时区包位置:容器中位置(usr/share/zoneinfo)

创建完毕,我们再进入docker中进入该容器的 /bin/bash 进入容器内部,查询date,发现他的时区就是我们这个定义的时区。所以我们顺利地完成了以后简单创建新容器也不会有时区问题的麻烦了!

posted @ 2019-10-28 20:05  王科慧  阅读(540)  评论(0编辑  收藏  举报