Docker容器时区调整操作

如何检查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容器时区调整操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2020-11-21

利用nexus作为私库进行代理docker,进行上传和下载镜像操作

一.nexus的配置 1.创建docker proxy 用于从外网仓库中拉取镜像至本地仓库中. 点击"create Repository",选择docker(proxy)进行创建 填写参数 点击"create repository" 创建 2.创建docker hosted 用于将自己的镜像上传至私库 点击"create Repository",选择docker(hosted)进行创建 填写参数: 点击"create repositor

Docker 使用nsenter工具进入容器的操作

在使用Docker容器的时候,利用nsenter工具会比较方便,如果我们的系统没有的话,那就需要我们自己来安装了 1.首先访问该网址找到最新版本的nsenter工具 2.然后下载nsenter工具的源码到我们的主机上 输入命令: # wget https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.32/util-linux-2.32.tar.gz 3.解压.tar.gz包 # tar -xzvf util-linux-2.32

解决docker run 或者 docker restart 启动镜像就自动退出

执行命令:docker run --name centos8 -d centos /bin/bash,通过docker ps查看正在运行中容器,找不到centos8. 通过docker ps -a查看发现,centos8容器已经处于停止状态了 [root@MiWiFi-R4A-srv server]$ docker run --name centos8 -d centos /bin/bash a770630ca865b3c3346a321a383f302ed22af9281be8482f4f4d

docker 连接宿主Mysql操作

今天公司项目要配置docker,顺利在windows上装完了之后,发现连接不上本地的mysql, 一直报权限问题或者地址错误的问题 最后发现 1:地址按照下面这个ipv4来 2:要在宿主Mysql将localhost权限打开,命令如下 mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;

docker 在容器外执行某个容器内的某个命令操作

有时候我们想执行某个容器的某条命令,但又不想进入容器内.那该怎么办? 于是脚本可以这样写 #!/bin/bash DOCKER_ID=62f3f40ab240 sudo docker exec -it $DOCKER_ID /bin/bash -c 'cd /packages/detectron && python tools/train.py' done 补充知识:解决docker容器与宿主机无缝调用shell命令问题 我就废话不多说了,大家看解决方法吧~ nsenter -t 1 -m

创建的docker容器时间显示错误/date错误/时区错误

前几天在测试应用的功能时,发现存入数据库中的数据create_time或者update_time字段总是错误,其他数据都是正常的,只有关于时间的字段是错误的. 进入linux服务器中查看,也没有任何的异常,然后就觉得可能是docker容器的问题,进入到容器中,查看系统时间,果然与宿主机中的时间不同,在网上查了一会儿资料后知道了答案,时区的设置问题,中国的时区为东八区,但是和其他国家的可能会不同,如果在创建容器时没有做修改的话,时区可能就不是东八区了,因此会出现这种类似的问题. 处理方法: ENV

Docker的MySQL容器时区问题修改

前言 阿航在开发Springboot项目时, 前端告诉验证码一直无效. 本地测试没有问题, 一看远程服务器的数据库时间, 哇塞–早了8小时. 很明显, 是MySQL的时区问题. 本篇文章就来记录下如何修改Docker 的 MySQL 容器时区. 解决方案 先来校验下数据库是否真的时区不对. 进入MySQL数据库, 运行语句: SELECT NOW(); 会返回类似这样的数据: mysql> SELECT NOW(); +---------------------+ | NOW() | +----

Docker创建Mysql容器的简单步骤

前言 前面我们已经安装好了Docker,也简单了解了Docker.下面就来给大家介绍下Docker创建Mysql容器的简单步骤,话不多说了,来一起看看详细的介绍吧 步骤如下 1.启动docker服务 [root@docker ~]# systemctl start docker 2.查看docker里面的镜像 [root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos/mysql-57-centos7 la

详解通过Docker搭建Mysql容器+Tomcat容器连接环境

1.实验目的:web容器能访问部署在另外容器中的MySQL 2.步骤1:拉取mysql镜像,拉取命令如下: docker pull mysql//官网的最新mysql进行 3.步骤2:拉取tomcat镜像,拉取命令如下: docker pull tomcat --name xuguokun/jdk-tomcat 4.步骤3:创建mysql的一个容器,容器的名字是mymysql,创建命令如下: 复制代码 代码如下: docker run --name mymysql -p 3306:3306  -

详解Docker创建Mysql容器并通过命令行连接到容器

拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker run --name mysql-master -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-slave1 -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-

Docker创建MySQL容器的方法

本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下 FROM centos:centos6 MAINTAINER Fanbin Kong "kongxx@hotmail.com" RUN yum install -y mysql-server mysql RUN /etc/init.d/mysqld start &&\ mysql -e

docker连接spring boot和mysql容器方法介绍

在之前使用docker部署运行了Spring Boot的小例子,但是没有使用数据库.在这一篇中,介绍docker如何启动mysql容器,以及如何将Spring Boot容器与mysql容器连接起来运行. docker基本命令 首先熟悉一下在操作过程中常用的docker基本命令: docker images:列出所有docker镜像 docker ps:列出所有运行中的容器,-a参数可以列出所有容器,包括停止的 docker stop container_id:停止容器 docker start

Docker下Tomcat容器中使用Mysql的方法

在这里我们使用Tomcat容器来运行war包,不过作为一个网站一个程序,如果需要用到数据库的,那么Tomcat容器中如何连接Mysql呢? 已经pull了tomcat和mysql镜像,可以使用docker的连接系统(–link)连接多个容器方式解决tomcat容器中使用mysql [root@izbp1b5k5bjps0dw8owk7tz ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat latest 2d084b1116

Docker容器中文乱码(修改docker容器编码格式)的解决方案

前台上传文件到服务器后,服务器返回给前台的文件列表中出现中文乱码,所有的中文文件名全部变成?,英文文件名则正常显示. 问题经过定位,发现后台代码的multipartfile类在执行transterto的方法时就发生了此异常,然而配置文件集中的multipartResolver以及encodingFilter均已经设置成了UTF-8,排除代码异常.kubectl exec进入到docker容器中进行查看时发现,文件在容器中也是中文文件名显示异常.查看docker容器编码格式:执行locale命令:

Docker创建一个mysql容器并保存为本地镜像

查找docker hub上的镜像 [root@wls12c ~]$ docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relati... 2903 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Crea... 190 [OK] centurylink/mysql

docker部署mysql 实现远程连接的示例代码

1.docker search mysql   查看mysql版本 2.docker pull mysql  要选择starts最高的那个name 进行下载 3.docker images  查看下载好的镜像 4.启动mysql实例 docker run --name dockermysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql  --name 为mysql的实例设置别名. -p 3307为对外暴露的端口.3306是内