docker时区问题和迁移数据问题
最新解决办法:
-v /usr/share/zoneinfo/asia/shanghai:/etc/timezone -v /etc/localtime:/etc/localtime:ro
问题1
项目在使用docker部署的时候,发现docke容器里面的时区和服务器的时间相差8个小时。
尽管使用 -v /etc/localtime:/etc/localtime 将服务器时间和容器挂载同步了,但是容器里的tomcat的时区仍然差8个小时。
说明
-v /etc/localtime:/etc/localtime
在启动的时候,使用这个命令,仅仅是将服务器和容器里系统的时间挂载了,你可能进入到容器里面再执行
“date” 命令看到,容器里面的时间的确是更改过来了,但是容器里面的tomcat运行的环境的日期,实际上仍未更改。
因为我们在pull获取这个tomcat镜像的时候,这个tomcat容器的时区已经固定了,所以我们唯一的办法是在编译这个tomcat镜像的时候,就将本地服务器的时间和这个镜像绑定起来。
解决办法(超简单)
使用dockerfile编译镜像。 dockerfile如下
执行如下命令
然后后边启动容器的时候,使用编译的这个tomcat即可
如图
docker 容器迁移
说明
docker部署的服务器发生变化的时候,比如数据库,想部署到一个新的地址,这些数据迁移有很多办法:
针对数据库:
1 使用mysql 的主从复制备份,在项目运行期间,将mysql服务器备份到多个地址,具体请看地址:https://zhangjy520.github.io/
2 使用启动mysql的时候,使用 -v 挂载 将本地的路径和容器路径绑定,然后迁移的时候将本地的路径复制到新服务器即可
-v /home/mysql/master/data/db-conf:/etc/mysql/ -v /home/mysql/master/data/db-data:/var/lib/mysql
3 导出mysql数据库呗,再导入到新的地址,比较low
4 使用docker的容器迁移。这篇博客主要讲的是docker,这里我们主要讲讲如何使用docker迁移
解决办法(超简单) 容器迁移
export / import
源服务器上执行
解释:这个压缩包打开可以看到,其实是一个linux服务器的目录结构,这个命令将容器以及容器运行的环境打包了
在目的服务器上执行
启动镜像
save / load
到此这篇关于docker时区问题和迁移数据问题的文章就介绍到这了,更多相关docker时区问题和迁移数据内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 静态代理与动态代理(jdk,cglib)
下一篇: JS -获取浏览器的 URL 地址栏
推荐阅读
-
关于Oracle中sys、system和Scott用户下的数据库连接问题
-
解决docker数据文件过大导致根磁盘满的问题
-
由数据迁移至MongoDB导致的数据不一致问题及解决方案
-
ASP 包含文件中的路径问题和使用单一数据库连接文件的解决方案
-
Android App数据格式Json解析方法和常见问题
-
解决ASP.NET MVC返回的JsonResult 中 日期类型数据格式问题,和返回的属性名称转为“驼峰命名法”和循环引用问题
-
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
-
nodejs和C语言插入mysql数据库乱码问题的解决方法
-
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
-
Oracle数据库新装之后出现的监听程序无法正常启动和运行(Oracle-12514)问题