Docker容器与宿主机日期时间同步
Docker容器的默认时区取决于使用的基础镜像。许多常见的基础镜像(例如 Debian,Ubuntu 等)的默认时区通常是UTC(协调世界时)。这意味着如果没有在创建或运行Docker 容器时显式设置一个特定的时区,那么容器内部的时间将按照UTC来显示。
在创建容器时直接挂载localtime文件:
docker run --name <name> -v /etc/localtime:/etc/localtime:ro
对已经创建的容器更新时区信息:
# 如果宿主机的/etc/localtime文件已经包含了正确的时区信息
docker cp -L /etc/localtime <containerId_or_containerName>:/etc/
# 如果需要指定特定的时区(例如上海时区)
docker cp /usr/share/zoneinfo/Asia/Shanghai <containerId_or_containerName>:/etc/localtime
创建Dockerfile时自定义镜像的时间格式与时区:
RUN echo "Asia/Shanghai" > /etc/timezone && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
使用DockerCompose:
version: '3'
services:
service_name:
image: your_image
volumes:
- /etc/localtime:/etc/localtime:ro