Linux服务器和docker时区修改问题
作者:妙妙屋(zy)
这篇文章主要介绍了Linux服务器和docker时区修改问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
前言
我的博客是部署在docker里面的,然后我发现评论和留言的时间和北京时间是有差别的,相差8个小时,然后发现是因为容器中的时区设置与服务器是不一致的,所以需要设置一下。
更改Linux服务器时区
- 查看当前时区设置
使用date
命令查看当前系统时间,发现当前时区设置为UTC。
$ date Wed Mar 3 09:21:28 UTC 2021
- 列出可用的时区列表
使用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
- 更改时区设置
使用ln
命令将/etc/localtime
文件链接到/usr/share/zoneinfo/Asia/Shanghai
文件,以更改系统时区设置为上海时区。
$ sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 验证时区设置
使用date
命令查看当前系统时间,发现当前时区设置为上海时区。
$ date Wed Mar 3 17:21:28 CST 2021
在docker中配置时区
- 创建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
文件中,以便与宿主机器保持一致。
- 构建Docker镜像
在项目根目录下运行以下命令,构建Docker镜像:
docker build -t your-image-name .
使用docker build
命令构建Docker镜像,并指定镜像名称为your-image-name
,最后的.
表示Dockerfile文件所在的当前目录。
- 运行Docker容器
在构建完成Docker镜像后,你可以使用以下命令运行Docker容器:
docker run -d -p 80:80 --name your-container-name your-image-name
到此这篇关于记录服务器和docker时区修改的文章就介绍到这了,更多相关服务器和docker时区内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!