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

         当使用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:latest

COPY my.cnf /etc/mysql/my.cnf

CMD ["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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值