ubuntu20.04 docker容器同步宿主机时区
时间: 2023-07-01 10:07:45 浏览: 96
在 Ubuntu 20.04 中,使用 Docker 容器同步宿主机时区,可以通过在 Dockerfile 中设置时区信息,或者在运行容器时挂载 `/etc/localtime` 和 `/etc/timezone` 文件来实现。
1. 在 Dockerfile 中设置时区信息
在 Dockerfile 中添加如下指令:
```
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
```
其中,`ENV TZ=Asia/Shanghai` 设置了时区为上海时间,你可以根据自己的需要设置不同的时区。然后,`RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime` 将宿主机的时区文件链接到容器中,`echo $TZ > /etc/timezone` 则将容器的时区设置为和宿主机相同的时区。
2. 在运行容器时挂载文件
如果你不想在 Dockerfile 中设置时区信息,也可以在运行容器时挂载 `/etc/localtime` 和 `/etc/timezone` 文件。例如:
```
docker run -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro myimage
```
其中,`-v /etc/localtime:/etc/localtime:ro` 将宿主机的时区文件挂载到容器中,`-v /etc/timezone:/etc/timezone:ro` 则将宿主机的时区设置文件挂载到容器中。这样,容器的时区就会和宿主机保持一致。
无论哪种方法,设置完毕后,可以在容器内运行 `date` 命令来验证时区是否正确。