Docker部署(4)——运行时日志时间不对(时区设置)

news/2025/1/16 5:03:44/

         当使用docker run 命令时,发现容器虽然成功运行,但是输出的时间却不对 。使用timedatectl命令后发现Linux系统的时间是正常的时间。

        于是将问题缩小到是不是docker 在运行时没有使用宿主机的时区的原因,那么解决办法可以将宿主机的时区映射到 Docker 容器。可以通过在运行容器时添加 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime 来实现

docker run -it --network my-net  --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime mysql

        这将挂载宿主机的 /etc/timezone 和 /etc/localtime 文件分别到 MySQL 容器内部相应的路径中,实现时区同步。

说明:

①:如果你要修改MySQL容器的配置,有两个比较常见的方法:

1、使用Dockerfile构建自定义的MySQL镜像

你可以使用Dockerfile来构建自定义的MySQL镜像,然后用这个镜像来启动容器。在Dockerfile中,你可以运行任何你需要的命令来配置MySQL。

首先,创建一个新文件夹用来存放Dockerfile和相关文件,然后在该文件夹中创建Dockerfile文件。Dockerfile文件的内容可以参考下面的示例:

FROM mysql:latestCOPY my.cnf /etc/mysql/my.cnfCMD ["mysqld"]

注意,这里使用了MySQL官方提供的latest版本作为基础镜像。你可以在该 Dockerfile 中添加其他的需要安装和配置的命令。如果你需要复制其他文件到镜像里,可以通过 COPY 命令来实现。

2、进入正在运行的MySQL容器并进行配置(修改功能有限)

        你可以进入正在运行的MySQL容器,然后按照你的需要进行修改。首先,使用以下命令进入正在运行的MySQL容器:

docker exec -it mysql-test bash

然后,打开MySQL并进行修改:

mysql -uroot -p

        你需要提供 MySQL 的 root 用户密码才能连接到 MySQL 服务器。连接后,你可以进行所需的删除、添加和修改。请注意,这种方法修改只会影响正在运行的容器。如果你后续启动新的容器,它们将不包含修改。因此,使用这种方法可能需要创建新的自定义镜像来确保容器始终运行所需的配置。

②:但是如果说Linux系统中时区出现了问题,或者说时间也不对的情况,可以通过安装tzdata包来更新时区信息。具体命令为:sudo apt install tzdata 或通过以下命令设置时区:

sudo timedatectl set-timezone <your/timezone>

例如,如果你在中国,可以使用以下命令:

sudo timedatectl set-timezone Asia/Shanghai

http://www.ppmy.cn/news/468026.html

相关文章

git提交忽略target文件

背景 项目如果没有设置.ignore文件&#xff0c;则我们的idea待提交区域有好多红色的新增的target文件、.iml文件等。 解决 本来未忽略前如下&#xff1a; 在.ignore文件中新增如下命令 #忽略所有.svn目录 .svn/ #忽略所有target目录 target/ #忽略所有.idea目录 .idea/ #…

设备算法加密授权“安全+易用=?”

一提到软件授权&#xff0c;大家的第一反应都是“安全”和“易用”的问题&#xff0c;尤其是在算法加密授权领域。软件企业想要十足的安全性用来防止反编译&#xff0c;同时又需要具备灵活和易用来促使企业商业模式落地。那现在市面上是否有这样一款兼顾“安全性”和“易用性”…

THINKPAD F1(静音键)长亮导致电脑没有声音的解决办法

1.WINR 打开搜索框&#xff0c;输入&#xff1a;services.msc 2.在服务中找到&#xff1a;lenovo Hotkey Client Loader 服务并重启&#xff0c;然后FNF1关闭即可

【id:21】【1分】E. DS单链表--类实现

题目描述 用C语言和类实现单链表&#xff0c;含头结点 属性包括&#xff1a;data数据域、next指针域 操作包括&#xff1a;插入、删除、查找 注意&#xff1a;单链表不是数组&#xff0c;所以位置从1开始对应首结点&#xff0c;头结点不放数据 类定义参考 输入 n 第1行先输…

thinkpad睡眠模式下耗电严重的解决方法

第一步、检查 cmd运行命令&#xff1a;powercfg -devicequery wake_programmable 查看到&#xff1a; 第二步&#xff1a;关闭唤醒设备。 这时可以找到设备管理器&#xff1a; 双击打开设置页面&#xff1a; 第三步&#xff1a;检查 cmd再次运行命令&#xff1a;powercfg -…

如何煲音箱

众所周知&#xff0c;很多交通工具在使用前都需要一段时间的磨合&#xff0c;我们的音箱也一样。现在有些朋友似乎陷入了一个怪圈&#xff0d;&#xff0d;只注重购买音箱的质量和现场音质的表现。其实我们要知道&#xff0c;如果你有一款有较好潜质的音箱&#xff0c;那么&quo…

SpringBoot项目的事务实现

说明&#xff1a;当业务中的某个功能&#xff0c;需要多个操作组合执行才能完成时&#xff08;如删除部门&#xff0c;部门下的员工也需要同步删除时&#xff09;&#xff0c;为了保证数据的一致性&#xff0c;需要对这些组合操作添加事务。&#xff08;参考&#xff1a;http:/…

获取秒、毫秒、微秒、纳秒时间差的方法

一、获得精度秒级时间差 time() 是指返回自 Unix 纪元&#xff08;January 1 1970 00:00:00 GMT&#xff09;起的当前时间的秒数的函数 time_t tStart time(NULL); Sleep(1000); time_t tStop time(NULL); long nElapsed tStop - tStart ; 二、获得精度毫秒级时间差 精度到…