📅  最后修改于: 2023-12-03 15:30:32.306000             🧑  作者: Mango
Docker 容器初始时是继承宿主机的时间和时区的,但容器运行后可以单独设置自己的时间和时区。本文将介绍 Docker 容器中的时间和时区相关操作。
在介绍 Docker 容器的时间和时区之前,我们先了解一下时间的一些概念:
我们可以使用以下命令来查看容器当前的时间和时区:
docker exec <container_id/name> date
docker exec <container_id/name> cat /etc/timezone
我们可以使用以下命令修改容器的时间,其中
docker exec <container_id/name> date -s "@<timestamp>"
如将容器时间设置为 2022 年 1 月 1 日 00:00:00:
docker exec <container_id/name> date -s "@1640976000"
我们可以使用以下命令设置容器的时区,其中
docker exec <container_id/name> ln -sf /usr/share/zoneinfo/<timezone> /etc/localtime
如设置容器时区为北京时间:
docker exec <container_id/name> ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意事项:某些 Linux 发行版的容器,可能没有 /usr/share/zoneinfo
目录,这时需要先在容器内安装 tzdata
包来提供时区信息,可使用以下命令进行安装:
docker exec <container_id/name> apt-get update && apt-get install -y tzdata
我们可以在 Dockerfile 中预设容器的时间和时区,以便在容器启动时自动应用。以下是示例 Dockerfile:
FROM ubuntu:latest
# 设置时区为北京时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置时间为 2022 年 1 月 1 日 00:00:00
RUN date -s "@1640976000"
Docker 容器的时间和时区与宿主机的关系并不复杂,本文主要介绍了如何查看容器中的时间和时区,以及如何修改容器的时间和时区,以及通过 Dockerfile 预设容器的时间和时区。开发者可以根据自己的需求进行操作,使容器中的时间和时区更符合实际情况。