docker时区问题和迁移数据问题_docker

来源:脚本之家  责任编辑:小易  

最新解决办法:

-v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /etc/localtime:/etc/localtime:ro

docker run --name tomcat-service-0 -d -p 8080:8080 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /etc/localtime:/etc/localtime:ro -v /home/zjy/logs/tomcat-service-0:/usr/local/tomcat/logs -v /home/zjy/code/ligu/target:/usr/local/tomcat/webapps tomcat

问题1

项目在使用docker部署的时候,发现docke容器里面的时区和服务器的时间相差8个小时。
尽管使用 -v /etc/localtime:/etc/localtime 将服务器时间和容器挂载同步了,但是容器里的tomcat的时区仍然差8个小时。

说明

-v /etc/localtime:/etc/localtime

在启动的时候,使用这个命令,仅仅是将服务器和容器里系统的时间挂载了,你可能进入到容器里面再执行
“date” 命令看到,容器里面的时间的确是更改过来了,但是容器里面的tomcat运行的环境的日期,实际上仍未更改。
因为我们在pull获取这个tomcat镜像的时候,这个tomcat容器的时区已经固定了,所以我们唯一的办法是在编译这个tomcat镜像的时候,就将本地服务器的时间和这个镜像绑定起来。

解决办法(超简单)

使用dockerFile编译镜像。 Dockerfile如下

# Pull base image 
FROM tomcat:latest 
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

执行如下命令

命令格式:
$docker build -t image_name Dockerfile_path
$:docker build -t timetomcat/timetomcat .

然后后边启动容器的时候,使用编译的这个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

源服务器上执行

docker export 83271b648212 >time.tar //导出容器,这里这个数字是容器id,会得到一个 tar压缩包

解释:这个压缩包打开可以看到,其实是一个linux服务器的目录结构,这个命令将容器以及容器运行的环境打包了

在目的服务器上执行

cat time.tar | sudo docker import - time:v2 //导入容器,导入得到一个镜像,使用 带command /bin/bash 的docker run
即可得到之前的容器包括文件

启动镜像

sudo docker run -itd --name import_test -p 8087:8080 time:v2 /bin/bash

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

save / load

sudo docker save web > web.tar
sudo docker load < web.tar

到此这篇关于docker时区问题和迁移数据问题的文章就介绍到这了,更多相关docker时区问题和迁移数据内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:Docker的MySQL容器时区问题修改docker中时区问题的处理方法

  • 本文相关:
  • 在ubuntu 16.04安装与使用docker的教程详解
  • docker内如何访问本机(宿主机)的具体方法
  • docker+gitlab+gitlab-runner部署详解
  • 一文快速入门docker推荐
  • docker镜像构建的两种方法解析
  • docker快速入门以及环境配置详解
  • docker 详解设置容器防火墙
  • docker volumn容器间共享数据的实现
  • docker绑定固定ip/跨主机容器互访操作
  • 详解docker compose 中可用的环境变量问题
  • 请教个docker中关于迁移的问题
  • 有什么好的办法解决 docker 容器与宿主机时间不同...
  • Docker 用镜像方式迁移和用Dockerfile动态生成有什...
  • 如何解决Docker容器和宿主机时间同步问题
  • 如何实现Docker镜像和容器实例的备份迁移
  • 如何在Linux中备份,恢复和迁移Docker容器
  • Docker 运行的容器时间不对,怎么解决
  • docker为什么不支持动态迁移
  • 有什么好的办法解决 docker 容器与宿主机时间不同...
  • 如何修改docker容器时间,使得每个容器时间不一致
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云计算技术云其它首页服务器云和虚拟化docker的mysql容器时区问题修改docker中时区问题的处理方法在ubuntu 16.04安装与使用docker的教程详解docker内如何访问本机(宿主机)的具体方法docker+gitlab+gitlab-runner部署详解一文快速入门docker推荐docker镜像构建的两种方法解析docker快速入门以及环境配置详解docker 详解设置容器防火墙docker volumn容器间共享数据的实现docker绑定固定ip/跨主机容器互访操作详解docker compose 中可用的环境变量问题docker 给运行中的容器设置端口映docker获取镜像报错docker: errodocker 清理命令集锦docker.service启动失败:unit nubuntu14.04+docker的安装及使用浅谈docker-compose网络设置之nedocker容器如何优雅的终止详解docker容器访问宿主机网络的方法详解docker国内镜像拉取和镜像加centos7 安装docker 解决启动不了docker容器通过独立ip暴露给局域网的方法阿里云docker容器固定应用到到某一个节点docker内如何访问本机(宿主机)的具体方法docker 修改文件是否需要重启(命令详解)docker容器调用yum报错的解决办法详解docker方式实现mysql 主从复制(实践docker如何使用nginx搭建tomcat集群(图文docker部署zabbix_agent的方法步骤docker环境搭建jenkins在构建任务时控制台docker machine创建azure虚拟主机
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved