«

同步宿主机时区到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)。

本文完结,相关标签: 时区 自启

 版权所有:Anglei
 文章标题:同步宿主机时区到docker镜像,并设置开机自启
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(0)

鲜花(0)

鸡蛋(0)
分享到: