记录liunx服务器和docker时区修改

记录服务器和 docker 时区修改

前言

我的博客是部署在 docker 里面的,然后我发现评论和留言的时间和北京时间是有差别的,相差 8 个小时,然后发现是因为容器中的时区设置与服务器是不一致的,所以需要设置一下。

更改 liunx 服务器时区

  1. 查看当前时区设置

使用date命令查看当前系统时间,发现当前时区设置为 UTC。

$ date
Wed Mar  3 09:21:28 UTC 2021
  1. 列出可用的时区列表

使用ls命令列出了/usr/share/zoneinfo目录下的所有时区信息。

$ ls /usr/share/zoneinfo
Africa      Chile       Etc         Indian      MET         posixrules  US
America     CST6CDT     Europe      Iran        Mexico      PRC         UTC
Antarctica  Cuba        Factory     iso3166.tab Mideast     PST8PDT     WET
Arctic      EET         GB          Israel      MST         right       W-SU
Asia        Egypt       GB-Eire     Jamaica     MST7MDT     ROC         zone.tab
  1. 更改时区设置

使用ln命令将/etc/localtime文件链接到/usr/share/zoneinfo/Asia/Shanghai文件,以更改系统时区设置为上海时区。

$ sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  1. 验证时区设置

使用date命令查看当前系统时间,发现当前时区设置为上海时区。

$ date
Wed Mar  3 17:21:28 CST 2021

在 docker 中配置时区

  1. 创建 Dockerfile 文件

在项目根目录下创建一个名为Dockerfile的文件,用于构建 Docker 镜像。具体实现可以参考下面的代码示例:

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src

COPY . .

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT ["dotnet", "YourProjectName.dll"]

设置Asia/Shanghai时区,并将其保存到/etc/localtime/etc/timezone文件中,以便与宿主机器保持一致。

  1. 构建 Docker 镜像

在项目根目录下运行以下命令,构建 Docker 镜像:

docker build -t your-image-name .

使用docker build命令构建 Docker 镜像,并指定镜像名称为your-image-name,最后的.表示 Dockerfile 文件所在的当前目录。

  1. 运行 Docker 容器

在构建完成 Docker 镜像后,你可以使用以下命令运行 Docker 容器:

docker run -d -p 80:80 --name your-container-name your-image-name

__EOF__

  • 本文作者: 妙妙屋(zy)
  • 本文链接: https://www.cnblogs.com/ZYPLJ/p/17499193.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。