docker修改容器gogs时区时间

问题描述:

公司内部搭建了一个gogs-git,是用docker部署的,但是发现提交的代码什么的时间跟服务器时间不一致

提交上去的世界是UTC时间不是中国的时间CST,相当于慢了8个小时

1、docker容器内的时区是UTC 
2、服务器的时区是CTS

解决方法:

一开始以为是gogs配置文件问题,最好发现原来是docker容器的时间问题

gogs服务器时间:
[[email protected] ~]# date
Fri Oct 19 16:19:19 CST 2018

docker容器的时间:
[[email protected] lib]# docker exec -ti 13da3c3f2488 /bin/bash
bash-4.3# date
Fri Oct 19 07:16:49 UTC 2018

两者相差了8个小时:
gogs服务器采用了CST时区,CST应该是指(China Shanghai Time,东八区时间)
docker容器采用了UTC时区,UTC应该是指(Coordinated Universal Time,标准时间)

统一时间两种方法:1、复制主机的localtime:[[email protected] lib]# docker cp /etc/localtime 13da3c3f2488:/etc/

然后再登陆docker容器,查看时间,发现时间已经跟服务器时间同步了:[[email protected] lib]# docker exec -ti 13da3c3f2488 /bin/bashbash-4.3# dateFri Oct 19 15:19:42 CST 2018bash-4.3# exit
2、创建dockerfile文件,然后就不用每次启动新的容器那么都要修改时间了[[email protected] docker]# vim dockerfileENV TZ=Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
保存后,利用docker build命令生成镜像使用即可

具体操作方法可以参考docker官方文档:https://docs.docker.com/engine/reference/commandline/build/#tarball-contexts

原文地址:https://www.cnblogs.com/Sungeek/p/9818021.html

时间: 2024-10-15 05:59:29

docker修改容器gogs时区时间的相关文章

Docker修改容器的端口映射和挂载路径

原文:Docker修改容器的端口映射和挂载路径 有时候因为某些原因需要修改容器的配置,如端口映射和挂载路径,但是如果删除容器后再重新运行,那么之前在容器内所做的修改就丢失了,本文提供了两种方法,可以在保留修改的同时修改配置参数. 方法一:将容器保存为镜像 1.停止容器 docker stop CONTAINER 2.将容器保存为新的镜像 docker commit CONTAINER NEWIMAGE:TAG 3.启动新的镜像,此时可以重新指定参数 docker run --name CONTA

【Docker】-NO.131.Docker.1 -【Docker 修改容器端口】

Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of Mastery:5 Practical Level:5 Desired Goal:5 Archieve Goal:3 Gerneral Evaluation:3 Writer:kingdelee Related Links: http://www.cnblogs.com/kingdelee/ 方法1

Docker 修改容器内的时区

利用docker发布服务,发现 程序用获取的系统时间比正常时间晚了8个小时 进入容器 docker exec -it /bin/sh 查询时间 date -R 发现时区为0时区 解决思路 1.复制相应的时区文件,替换系统时区文件: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 发现创建镜像时依赖的基础镜像 运行的容器没有这两个文件 2. 创建文件夹 mkdir -p /usr/share/zoneinfo/Asia 3.回到宿主机 复制

Docker openjdk-8-jdk-alpine 容器时间与jdk时区不同修改方法

测试时发现以 openjdk-8-jdk-alpine 为基础镜像制作的镜像有时区问题.查资料知道 alpine 本身不带时区信息.按以下方法修改后正常获取时间. 一.挂载宿主机的时区到容器 启动命令增加参数 -v /etc/localtime:/etc/localtime 启动容器,进入查看时间正常,时区也已同步.但java应用获取的时间还是差8小时. 继续查找资料 java 获取时区与 linux 系统时区的不同 参考博客 二.设置容器内时区 通过后来不断尝试,修改 localtime 确定

docker 解决容器时区时间不一致

创建容器的时候设置时区 // 将宿主机的时间与本地时间绑定到容器中 // 添加 -v /etc/localtime:/etc/localtime 启动容器 # docker run -d -v /etc/localtime:/etc/localtime -p 8888:8080 tomcat:latest 启动后的容器修改时区 # docker exec -it <容器名> /bin/bash # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/lo

修改php上传文件尺寸、响应时间、时区时间等设置

修改php上传文件尺寸.响应时间 1.修改php.ini 1.post_max_size 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值,默认为8M(改为150M),看你自己需要进行改变. 2.首先确认file_uploads = on 是否允许通过HTTP上传文件的开关,默认为ON即是开. upload_tmp_dir 通过HTTP上传文件的缓存目录,检查是否可写; 查找upload_max_filesize 即允许上传文件大小的最大值.默认为2M(改为100M). 3.如果

如何修改容器时间而不改变宿主机时间?

需求 有时候需要测试业务程序,把时间指定到一个特定的时间去测试,如何在修改容器时间而不影响宿主机时间? 解决方法 GitHub 有一个开源的 libfaketime 项目,能解决这个问题.目前该项目有 1.3k Star. 项目地址 https://github.com/wolfcw/libfaketime 支持平台 Linux MacOs 安装 注意:必须 sudo make install,否则 libfaketime.dylib.1 没有运行权限,默认安装到 /usr/local/bin/

docker 修改镜像和容器的存放路径(最新自己实践了第三种方法)

原文:docker 修改镜像和容器的存放路径(最新自己实践了第三种方法) docker info :查看docker的存储等相关信息. 将路径修改至挂载磁盘中 前提:磁盘已挂载成功 方法一: 1.停止docker 服务 service docker stop 2.备份数据到新的存放路径 cp -r /var/lib/docker/* /mnt/docker 3.备份 /var/lib/docker 路径 mv /var/lib/docker /var/lib/dockerbak} 4.创建软连接

docker 构建基础镜像 时区问题

前言 在使用tomcat官方docker 镜像时,程序在与微信通信过程中返回了时间差问题,查看后发现是docker 容器的问题. 问题 docker 官方镜像使用的都是UTC 标准时间,这就导致了比beijing时间晚8小时. 解决这一问题并不难,只要修正容器的时区就可以了.众所周知,对容器的修改并不会影响到镜像,所以又会出现这样一个问题,再次从镜像启动容器时,时间就会又变成UTC 标准时间.对于此问题,自然是可以使用docker commit 来解决,但我并不想这样做-- 解决方案 基于cen