要在 Docker 容器中将时间修改为上海时间,你可以通过以下步骤来实现:
-
启动容器时设置时区:
你可以在启动容器时通过挂载宿主机的时区文件来设置:
bashdocker run -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro your_image
-
在 Dockerfile 中设置时区:
如果你有自己的 Dockerfile,可以在其中设置时区:
dockerfileFROM your_base_image RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone
-
在容器内部手动设置时区:
如果容器已经在运行,你可以进入容器并手动设置:
bashdocker exec -it your_container_name /bin/bash ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo "Asia/Shanghai" > /etc/timezone
通过这些方法,你可以将 Docker 容器的时间设置为上海时间。
docker里修改的时间是永久生效吗, 即便重启。
在 Docker 容器中通过上述方法设置的时区通常是永久生效的,即便重启容器也会保持。
具体来说:
-
挂载宿主机的时区文件:这种方式会在每次启动时自动应用宿主机的时区设置,因此是永久生效的。
-
在 Dockerfile 中设置时区:通过 Dockerfile 设置的时区会在容器镜像构建时生效,所有基于该镜像启动的容器都会使用该时区。
-
在容器内部手动设置:这种方式在容器重启后依然有效,因为更改的是容器内部的配置文件。
如果你需要确保时区设置持久有效,建议使用 Dockerfile 设置或者挂载宿主机的时区文件。