Docker:如何在 CentOs 主机和 Debian 容器之间同步日期?

Docker:如何在 CentOs 主机和 Debian 容器之间同步日期?

我有一个运行 docker Debian 容器的 CentOs 主机。

容器具有错误的本地时间和时区:我该如何将其与主机日期同步?

我正在尝试使用 /etc/localtime 在 docker-compose 上安装卷,但是不起作用。

我喜欢的解决方案应该是其中之一:

  • 在 Dockerfile 中设置特定的 ENV
  • 在 docker-compose.yml 中正确挂载卷

答案1

您可以将本地文件/etc/localtime作为卷添加到 docker-container 中。使用以下行更新 docker-compose.yml。

volumes:
    - "/etc/localtime:/etc/localtime:ro"

进而:

# docker-compose up -d

现在容器的时间与主机上的时间相同。

答案2

我找到了解决方案。

在 Dockerfile 中写入:

ENV TZ=<your timezone>

例子:

ENV TZ=Europe/Rome

答案3

您应该定义一个 ENV TZ 并添加更改本地时间软链接并将其放在时区文件中:

ENV TZ=Europe/Lisbon
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

相关内容