
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Git Docker 镜像是基于 Git 分布式版本控制系统的容器化封装,提供轻量级、可移植的 Git 运行环境。该镜像包含 Git 核心程序及依赖组件,可直接用于执行版本控制相关操作,无需在宿主机单独安装 Git。
git init)、克隆(git clone)、提交(git commit)、分支(git branch)、合并(git merge)等核心操作从 Docker Hub 拉取官方 Git 镜像(默认使用 latest 标签,建议指定具体版本以确保稳定性):
bash# 拉取最新版本 docker pull git # 拉取指定版本(如 2.43.0) docker pull git:2.43.0
通过 docker run 命令启动容器,直接执行 Git 命令。容器默认以 git 用户运行,工作目录为 /。
4.2.1 查看 Git 版本
bashdocker run --rm git git --version # 输出示例:git version 2.43.0
4.2.2 初始化本地仓库
bash# 挂载当前目录到容器的 /repo 目录,在容器内初始化仓库 docker run --rm -v $(pwd):/repo -w /repo git git init
--rm:容器退出后自动删除,避免残留-v $(pwd):/repo:将宿主机当前目录挂载到容器的 /repo 目录(数据持久化)-w /repo:指定容器内工作目录为 /repo容器内的仓库数据默认存储在临时文件系统中,容器删除后数据会丢失。需通过目录挂载将仓库数据持久化到宿主机:
示例:克隆远程仓库并持久化
bash# 克隆 GitHub 仓库到宿主机 ./my-repo 目录 docker run --rm -v $(pwd)/my-repo:/repo -w /repo git git clone https://github.com/example/repo.git .
./my-repo 会被创建并保存克隆的仓库数据,容器删除后数据仍保留Git 提交时需配置用户姓名和***,可通过以下两种方式设置:
4.4.1 容器内执行 git config 命令
bashdocker run --rm -v $(pwd):/repo -w /repo git sh -c " git config --global user.name 'Your Name' && git config --global user.email 'your.email@example.com' && git commit -m 'Initial commit' "
4.4.2 通过环境变量传递配置
使用 GIT_CONFIG_PARAMETERS 环境变量批量传递配置参数(需 Git 2.13.0+ 支持):
bashdocker run --rm -v $(pwd):/repo -w /repo \ -e GIT_CONFIG_PARAMETERS="user.name='Your Name';user.email=your.email@example.com" \ git git commit -m 'Initial commit'
若需通过 SSH 协议访问远程仓库(如 git@github.com:example/repo.git),需将宿主机的 SSH 密钥挂载到容器的 ~/.ssh 目录:
bash# 挂载宿主机 SSH 密钥到容器(假设密钥文件为 ~/.ssh/id_rsa) docker run --rm -v $(pwd):/repo -v ~/.ssh:/root/.ssh -w /repo \ git git clone git@github.com:example/repo.git .
~/.ssh 目录默认权限需为 700,密钥文件权限为 600,可通过 chmod 调整:
bashdocker run --rm -v ~/.ssh:/root/.ssh git sh -c "chmod 700 /root/.ssh && chmod 600 /root/.ssh/id_rsa"
适用于需重复执行版本控制操作的场景(如本地开发环境):
yaml# docker-compose.yml version: '3' services: git: image: git:2.43.0 volumes: - ./my-repo:/repo # 宿主机仓库目录 - ~/.ssh:/root/.ssh # SSH 密钥(如需远程访问) working_dir: /repo environment: - GIT_CONFIG_PARAMETERS=user.name='Your Name';user.email=your.email@example.com
启动并进入容器:
bashdocker-compose run --rm git sh # 在容器内执行 Git 命令,如:git status、git pull 等
| 环境变量 | 说明 | 示例值 |
|---|---|---|
GIT_CONFIG_PARAMETERS | 批量传递 Git 配置参数(格式:key1=value1;key2=value2) | user.name='John Doe';user.email=john@example.com |
HOME | 指定用户主目录(容器内默认 /home/git,root 用户为 /root) | /root |
PATH | 可执行文件路径(默认包含 Git 命令路径,无需修改) | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
通过 git config 命令或 GIT_CONFIG_PARAMETERS 配置,常用参数如下:
| 配置参数 | 说明 | 示例值 |
|---|---|---|
user.name | 提交者姓名 | John Doe |
user.email | 提交者*** | john@example.com |
core.editor | 默认编辑器 | vim |
remote.origin.url | 远程仓库地址 | https://github.com/example/repo.git |
-v 挂载宿主机目录持久化仓库数据。git,UID 1000)可能无读写权限,需通过 --user $(id -u):$(id -g) 指定宿主机用户 ID 解决:
bashdocker run --rm -v $(pwd):/repo -w /repo --user $(id -u):$(id -g) git git status
git:2.43.0),避免 latest 标签自动更新导致版本不一致。HTTP_PROXY 环境变量传递(如 -e HTTP_PROXY=http://proxy:8080)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务