首页 > 其他分享 >Docker宿主机时间与容器时间不一致问题

Docker宿主机时间与容器时间不一致问题

时间:2023-07-07 16:00:10浏览次数:46  
标签:容器 07 宿主机 时间 2023 Docker root

查看宿主机时区和时间:

[root@iZbp19plg6p1ajmesvagqvZ ~]# timedatectl
               Local time: 五 2023-07-07 15:28:28 CST
           Universal time: 五 2023-07-07 07:28:28 UTC
                 RTC time: 五 2023-07-07 07:28:27
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: n/a
          RTC in local TZ: no
[root@iZbp19plg6p1ajmesvagqvZ ~]# date
2023年 07月 07日 星期五 15:30:10 CST

进入容器查看容器时间:

[root@iZbp19plg6p1ajmesvagqvZ ~]# docker exec -it hello-jenkins bash
root@5cb7e14e4f12:/# date
Fri Jul  7 07:32:47 UTC 2023

可以看到,默认容器的时间是UTC标准时间,而我们的宿主机使用的是东八区时间,此时可以在容器启动时挂载本机时间到容器中:

-v /etc/localtime:/etc/localtime

如果容器不方便重新创建,可以复制一份过去:

docker cp /etc/localtime {容器id或容器name}:/etc/localtime

再次查看容器时间:

[root@iZbp19plg6p1ajmesvagqvZ ~]# docker exec -it hello-jenkins bash
root@a6cbf1b8666c:/# date
Fri Jul  7 15:44:27 CST 2023

此时,容器时间和宿主机保持一致。

如果容器运行的是Java程序,比如在代码中输出指定格式时间,调用方法时依然返回标准时间:

return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
// 2023-07-07 07:49:41

在启动容器加上指定时区:

 -e TZ="Asia/Shanghai"

此时,输出时间变为:2023-07-07 15:53:49

标签:容器,07,宿主机,时间,2023,Docker,root
From: https://www.cnblogs.com/coderxin/p/17535234.html

相关文章

  • Docker安装Nacos并以单例模式运行
    Nacos单例模式运行使用嵌入式数据库即可,这里不依赖于mysql。拉取指定版本Nacos镜像:dockerpullnacos/nacos-server:2.0.3查看镜像列表:dockerimages以单例模式启动:dockerrun-d--namenacos-p8848:8848-eMODE=standalonenacos/nacos-server:2.0.3查看容器列表......
  • Docker 中安装 OnlyOffice
    本文以第三方社区编译版本为例,官方镜像的操作方法请参考其官网介绍第三方社区编译版本地址:https://hub.docker.com/r/sanglr/onlyoffice1.下载镜像dockerpullsanglr/onlyoffice:7.1.1.242.启动dockerrun-i-t-d-p8081:80--restart=always--nameonlyofficesanglr/......
  • 使用vscode的devcontainer以及docker初体验
    想尝试0xffff提供的devcontainer来搭建开发环境。在后面发现搭建失败,都显示连接失败。后面查看nginx的log日志发现,nginx服务是正常启动的,可以看到404。查看phperrorlog发现,是未找到autoload.php。顺着找下去我发现,可能是因为composer包没有安装完全。flarum-lang/chinese-simp......
  • Ubuntu安装docker
    Ubuntu安装docker1、先卸载旧版,如果没有的话,就不用执行了,直接第二步。apt-getremovedockerdocker-enginedocker.iocontainerdrunc2、在终端输入aptupdateapt-getinstallca-certificatescurlgnupglsb-release3、安装证书curl-fsSLhttp://mirrors.aliyun.com/......
  • Docker 安装 Nextcloud
    1.dockercompose文件version:'3'services:db:image:mariadb:10.6restart:alwayscommand:--transaction-isolation=READ-COMMITTED--log-bin=binlog--binlog-format=ROWvolumes:-/mnt/docker/mariadb/conf:/etc/mysql/conf.......
  • centos 安装docker-ce、docker compose
     yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engineyuminstall-yyum-utils......
  • (二) Docker中启动镜像​
    一、查看当前docker中下载的镜像,如下图,当前我的Docker容器中存在两个镜像,tomcat、mysql二、启动镜像(因启动命令参数过多,同时各种镜像启动时可以增加额外的参数,本次以启动mysql5.6为例)dockerrun-p本机映射端口:镜像映射端口-d--name启动镜像名称-e镜像启动参数......
  • Docker CLI docker container kill 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • docker安装Redis 6.0.8
    1、前置说明参考:尚硅谷(周阳)老师笔记写的。注意:删除容器后,数据也会从(宿主机)加载的。2、安装2.1、拉取Redis6.0.8dockerpullredis:6.0.82.2、宿主机:新建redis目录mkdir-p/app/redis2.2.1、创建redis配置文件#一、进入目录cd/app/redis#二、创建redis.conf......
  • 基于Jenkins+Gitee实现SpringBoot项目自动化部署(Docker版)
    前言:上一篇笔记:基于Jenkins+Gitee实现SpringBoot项目自动化部署(非Docker版)。本篇笔记介绍一下Docker版本的Jenkins如何实现项目自动化部署。本案例基于Linux CentOS7服务器,防火墙开放8080端口(Jenkins使用),80端口(项目使用),云服务器直接在控制台配置安全规则即可。1......