解决Docker容器时区不一致的问题

查看linux系统时区和docker容器时区

date -R                          //查看linux主机时间和时区
date exec [container] date -R    // 查看容器时间和时区

2者的时间差了8个小时

解决方案

1、利用Dockerfile创建镜像时。在Dockerfile中加入

ENV TIME_ZONE=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone

2、容器创建时。加入时区挂载选项:-v /etc/localtime:/etc/localtime。实例:

docker run -d -p 6379:6379 -v /etc/localtime:/etc/localtime --name test-redis redis

3、容器已启动时。

docker exec -it container /bin/bash // 进入交互模式,container为容器ID或名称,下同
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
docker restart container // 重启容器
docker exec container date -R // 查看时区

以上均亲测试,良心保证,另外网上有搜到docker cp /etc/localtime [container]:/etc/localtime方法,但实际验证没成功,不知为何。

原文地址:https://www.cnblogs.com/zhi-leaf/p/10604574.html

时间: 2024-08-06 21:39:55

解决Docker容器时区不一致的问题的相关文章

解决Docker容器时区及时间不同步问题

今天在系统集成测试时由测试人员提交了一个测试bug,原因是提交业务数据时间与实际时间(北京时间)有偏差,导致统计异常.由于我们集成测试是向测试人员直接提供完整的Docker镜像作为测试环境,原因应该是出在容器时间设置上. 拿到交付的docker镜像后,启动后进入容器控制台,使用date命令查看果然时间不正确.再查看宿主机时间是正确,这样肯定是容器启动时未将时区与宿主机保持同步了,由于测试镜像是由dockfile直接构建,因此问题基本了定准在dockerfile文件上了. 打开dockerfile

解决docker容器的窗口大小问题

解决docker容器的窗口大小问题 最近哥们在是使用docker时,发现有些容器内部窗口大小有问题. 如下午所示,vi窗口只占据左上角一部分.正常情况下vi应该铺满整个窗口才对呀. 所以哥们找到了解决方案,执行下面命令,然后退出容器重新进入. echo "export TERM=xterm" >> /root/.bashrc 参考文献 GitHub 原文地址:https://www.cnblogs.com/WingPig/p/8124353.html

解决docker容器中Centos7系统的中文乱码

解决docker容器中Centos7系统的中文乱码问题有如下两种方案: 第一种只能临时解决中文乱码: 在命令行中执行如下命令: $>localedef -i zh_CN -f UTF-8 zh_CN.UTF-8 $>yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common $>localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 $>export LC_ALL=zh

解决Docker容器 iptables问题

一.问题现象 最近在研究Docker容器日志管理时,启动容器出现iptables相关报错,具体问题如下 运行容器 [[email protected] ~]# docker run -d -p 24224:24224 -p 24224:24224/udp -v /data:/fluentd/log fluent/fluentd 出现如下报错 docker: Error response from daemon: driver failed programming external connect

centos:解决docker容器内挂载目录无权限 ls: cannot open directory .: Permission denied

docker运行一个容器后,将主机中当前目录下的文件夹挂载到容器的文件夹后 进入到docker容器内对应的挂载目录中,运行命令ls后提示: ls: cannot open directory .: Permission denied 解决: 在docker run一个容器时,加上 --privileged=true 给容器加特权即可. 原文地址:https://www.cnblogs.com/UniqueColor/p/9318815.html

解决Docker容器内访问宿主机MySQL数据库服务器的问题

懒得描述太多,总归是解决了问题,方法简要记录如下,虽然简要,但是完整,一来纪念处理该问题耗费的大半天时间,二来本着共享精神帮助其他遇到该问题的哥们儿,当然这个方法并不一定能解决你们的问题,但是多少能提供些解决思路. 第一,先检查防火墙,通常应该没什么问题 (问题解决之后我把这块规则去掉了,发现没什么影响,所以容器的话,可能docker已经解决了防火墙的问题,但是不排除其他人会有这个问题.)添加规则 针对特定地址开放3306端口,一定程度上保证数据库的安全 iptables -I INPUT -s

解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题

在docker中运行第三方服务时,通常需要绑定服务端口到本地主机.但使用 -p 参数进行的端口映射,会自动在iptables中建立规则,绕过firewalld,这对于端口级的黑白名单控制管理是很不利的,所以我们需要对iptables进行手动修改. 这里以从名为centos.19.09.05的image建立一个容器为例: 首先,如果系统是CentOS7的话,需要关闭自带firewalld防火墙,并切换为iptables. 假设需要将新容器的27017端口映射到主机的27017端口,一般情况下我们使

解决docker容器vim高度宽度显示不正常

docker exec -it --env COLUMNS=`tput cols` --env LINES=`tput lines` your_container_name /bin/bash reference: https://blog.csdn.net/DongGeGe214/article/details/86674741 原文地址:https://www.cnblogs.com/i-shu/p/11491301.html

Docker容器日志清理

前言 最近发现公司Gitlab服务器磁盘满了,经排查发现是docker容器日志占用了几十个G容量,那么这些日志怎么去查看和清理呢? 本节主要讲到的知识点如下: (1)Docker容器日志路径 (2)如何清理Docker容器日志 (3)如何从根本上解决Docker容器日志占用空间问题 Docker容器日志路径 在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面,以json.log结尾的文件(业务日志).如下: 如何清理Docker