其实是一件简单的事,但是老忘记,还是记录下
可以,一行参数就能让容器用宿主机本地时区,无需改镜像、无需装任何包:
bash
docker run -d \
--name openresty \
-p 8359:8359 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
my/openresty-kafka:arm64
解释
/etc/localtime
是 时区数据文件(二进制),挂进去容器即可;/etc/timezone
是 时区名字 (如Asia/Shanghai
),一起挂保证date
命令输出也正确;:ro
只读,安全。
验证
bash
docker exec openresty date
# 输出应与宿主机完全一致
docker-compose 写法
yaml
services:
openresty:
image: my/openresty-kafka:arm64
ports:
- "8359:8359"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
零镜像改动,零依赖,一条挂载即与宿主机时间同步。