手动同步宿主机时区至Docker容器

宿主机时区配置

系统:debian 9
时区:Asia/Shanghai
权限:root

修改debian系统时区需要修改/etc/timezone和/etc/localtime两个文件。
前者只需添加一行Asia/Shanghai,可以使用命令修改:

echo "Asia/Shanghai" > /etc/timezone

后者可以直接拷贝/usr/share/zoneinfo/Asia/Shanghai 到 /etc/localtime:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

也可以创建软连接:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

使用date命令查看是否生效

同步Doker容器时区

以mysql为例
方法1:在创建容器的时候用-v将宿主机上的/etc/timezone和/etc/localtime两个文件挂载到容器的对应目录:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=xxx -p 3306:3306 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /docker-data/mysql:/var/lib/mysql -d mysql:5.7

方法2:在创建容器时指定TZ环境变量为Asia/Shanghai

docker run --name mysql -e MYSQL_ROOT_PASSWORD=xxx -p 3306:3306 -e TZ=Asia/Shanghai -v /docker-data/mysql:/var/lib/mysql -d mysql:5.7

查看效果:

docker exec -it mysql date

你可能感兴趣的:(手动同步宿主机时区至Docker容器)