# 記錄伺服器和docker時區修改 ## 前言 我的博客是部署在docker裡面的,然後我發現評論和留言的時間和北京時間是有差別的,相差8個小時,然後發現是因為容器中的時區設置與伺服器是不一致的,所以需要設置一下。 ## 更改liunx伺服器時區 1. 查看當前時區設置 使用`date`命令查看當 ...
記錄伺服器和docker時區修改
前言
我的博客是部署在docker裡面的,然後我發現評論和留言的時間和北京時間是有差別的,相差8個小時,然後發現是因為容器中的時區設置與伺服器是不一致的,所以需要設置一下。
更改liunx伺服器時區
- 查看當前時區設置
使用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