目錄
- 前言
- 更改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