如何检查Docker容器时区是否与宿主机一致?
1、进入宿主机, 执行以下命令:
# 查看宿主机时间
[root@localhost ~]# date
2018年 06月 27日 星期三 22:42:44 CST
2、进入到容器中,执行以下命令
# 查看容器时间
root@lksjoid909090:/#date
Wed Jul 27 14:43:31 UTC 2018
CST应该是指(China Shanghai Time,东八区时间)
UTC应该是指(Coordinated Universal Time,标准时间)
可以发现,他们相隔了8小时, 宿主机与Docker容器时区不一致。
解决方案:
1、【镜像未生产前】基础镜像 在 Dockerfile 中设置时区:
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
2、【镜像生成后 && 容器未创建】 创建并启动容器时:
# 共享主机时间
docker run --name <name> -v /etc/localtime:/etc/localtime:ro ...
3、【镜像生成后 && 容器启动】 容器外,宿主机中修改:
docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime
4、【镜像生成后 && 容器启动】 容器中
apk add tzdata
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo "Asia/Shanghai" > /etc/timezone
补充知识:docker命令报错error during connect: Get http://2F2F.2Fpipe2Fdocker_engine/v1.36/containers/json: open//.
执行docker ps报错
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.36/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
报错信息如下:
解决方法
1.执行命令:
docker-machine env default
2.方法一:
将显示的命令复制出来进行执行
执行完后,再执行docker ps等命令,即可正常使用
3. 方法二:
只将最后一句
REM @FOR /f “tokens=*” %i IN (‘docker-machine env default') DO @%i
命令去掉REM进行执行,即执行
@FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
执行完后,docker命令就可以正常使用了,每新开一个cmd窗口都需要先设置环境变量。
注意:在bat脚本中使用方法二时,直接将FOR语句放入bat脚本中运行会报错,将命令中的%i改为 %%i。
以上这篇Docker容器时区调整操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
在我们项目维护过程中,可能会遇到需要修改服务器时间,平台的工具集功能就可以满足您的需求了~ 在这需要注意,此功能依赖faketime,请在宿主机编译faketime扩展。路径在 /usr/local/lib/libfaketime.so.1 调整服务时间(菜单栏:工具集->调整时间) 在项目列表中筛选您要修改的项目,点击 修改时间,确认之后会重启服务生效。
docker 运行示例如下 网上找的相关示例,无外乎下面三种方式, 但我的测试却是全都不生效 以上方法,CentOS和Ubuntu都试过, 不额外在容器内安装工具, 不直接date -s 设置的情况下, 还有什么方法可以实现同步宿主机的时间吗?
问题内容: 我有一个运行一些Dockerfile的docker- compose文件来创建我的容器。我不想编辑Dockerfile来设置时区,因为它们可能会随时被团队成员更改,并且我有一个docker- compose.override.yml文件可以进行本地环境更改。但是,我的一个容器(基于Selenium的容器)似乎没有拉主机时区,这给我带来了麻烦。基于此,我想在所有容器上实施时区。现在在我的
我有一个mysql 5.7 docker容器。当我运行mysql命令时: 它显示了我当前时间的3小时(这是合乎逻辑的)。我想在配置文件中设置时区。遵循中的文档https://hub.docker.com/_/mysql/我在我的文件如下所示: 当我浏览容器中的文件时,文件。在该文件中,我尝试了一些解决方案,如: 或者是一种折衷方案,因为该区域每年必须更换两次(夏季/冬季),因此不太优雅: 但这一切
我有一个运行几个Dockerfile来创建我的容器的docker撰写文件。我不想编辑我的Dockerfile来设置时区,因为它们可以随时由我的团队成员更改,我有一个docker-compose.override.yml文件来进行本地环境更改。然而,我的一个容器(基于硒的容器)似乎没有拉动主机时区,这给我带来了问题。基于此,我想在所有容器上强制执行时区。在我的Dockerfile里我知道 一切正常。
本文向大家介绍Docker的MySQL容器时区问题修改,包括了Docker的MySQL容器时区问题修改的使用技巧和注意事项,需要的朋友参考一下 前言 阿航在开发Springboot项目时, 前端告诉验证码一直无效. 本地测试没有问题, 一看远程服务器的数据库时间, 哇塞–早了8小时. 很明显, 是MySQL的时区问题. 本篇文章就来记录下如何修改Docker 的 MySQL 容器时区. 解决方案