我有一个运行 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