前言
在Docker容器中,时间通常会受到宿主机时间和时区设置的影响,导致容器内部的时间与预期不符。这可能会对应用程序的日志记录、定时任务等功能造成问题。设想一个这样的场景,主机的时区晚8小时,在不更改主机时区的情况下,如何修改docker容器中的时区为正常时区呢?有两种方式可以参考
Dockerfile
在Dockerfile文件中添加类似以下语句来设置容器的时区:
RUN apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
apk del tzdata
容器目录挂载
在docker-compose文件中挂载时区文件:
version: '3'
services:
minio:
image: minio/minio:RELEASE.2021-06-09T18-51-39Z
restart: always
container_name: minio
command: server /data
ports:
- 9000:9000
volumes:
- /data:/data
- ./config:/root/.minio
- ./zoneinfo/localtime:/etc/localtime // 把当前目录下的时区文件映射到容器内部
- ./zoneinfo/timezone:/etc/timezone // 把当前目录下的时区文件映射到容器内部
environment:
- MINIO_DOMAIN=minio
- MINIO_ACCESS_KEY=test
- MINIO_SECRET_KEY=test
GPT一下,你就知道
今年AIGC太火,程序员很多东西用GPT就能搞定吧,推荐个我一直在使用的:Talk-Bot