同步宿主机时区到docker镜像,并设置开机自启
时间:2025-3-24 09:59 作者:Anglei 分类: 虚拟化
同步宿主机时区到docker镜像,并设置随docker启动自启
docker run --name nginx -p 8880:80 -d -v /data:/app -v /etc/localtime:/etc/localtime:ro --restart unless-stopped registry.maxada.cn/nginx:latest
1. 基础命令
docker run
作用:启动一个新容器。
扩展:
docker run 是容器生命周期的起点,后续参数定义容器的配置和行为。
若镜像本地不存在,Docker 会自动从配置的仓库(如 registry.maxada.cn)拉取。
2. 容器命名
--name nginx
作用:为容器指定名称 nginx,便于后续管理(如 docker stop nginx)。
扩展:
若未命名,Docker 会生成随机名称(如 tender_borg)。
命名需唯一,重复名称会导致冲突。
3. 端口映射
-p 8880:80
作用:将宿主机的 8880 端口映射到容器内的 80 端口。
扩展:
格式:-p <宿主机端口>:<容器端口>
场景:避免宿主机端口冲突(如宿主机 80 已被占用)。
高级用法:-p 80:80 -p 443:443 同时映射多个端口。
4. 后台运行
-d
作用:容器在后台运行(detach 模式),返回容器 ID。
扩展:
若省略 -d,容器会占用当前终端,退出终端会导致容器停止。
查看后台容器:docker ps
5. 数据卷挂载
-v /data:/app
作用:将宿主机的 /data 目录挂载到容器的 /app 目录。
扩展:
数据持久化:容器删除后,/app 数据仍保留在宿主机 /data。
配置共享:挂载配置文件(如 Nginx 的 nginx.conf)到容器。
权限问题:需确保宿主机目录权限与容器内进程用户匹配(如使用 --user 参数)。
6. 时区同步
-v /etc/localtime:/etc/localtime:ro
作用:将宿主机的时区文件挂载到容器,并设为只读(ro)。
扩展:
时区问题:容器默认使用 UTC 时间,挂载后可避免日志时间错乱。
其他方案:在 Dockerfile 中设置时区(如 ENV TZ=Asia/Shanghai)。
7. 重启策略
--restart unless-stopped
作用:容器退出时自动重启,除非手动停止(docker stop)。
扩展:
策略对比:
no:不自动重启(默认)。
on-failure:仅在非 0 退出码时重启。
always:始终重启(即使手动停止后)。
unless-stopped:推荐用于生产环境,平衡高可用性和可控性。
8. 镜像指定
registry.maxada.cn/nginx:latest
作用:使用私有仓库 registry.maxada.cn 中的 nginx:latest 镜像。
扩展:
镜像标签:latest 可能指向最新构建,生产环境建议固定标签(如 nginx:1.25.3)。
私有仓库:需提前配置 Docker 认证(docker login registry.maxada.cn)。

推荐阅读:
![]() 路过(0) |
![]() 雷人(0) |
![]() 握手(0) |
![]() 鲜花(0) |
![]() 鸡蛋(0) |