stagex/gitGit 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 用户运行,工作目录为 /。
bashdocker run --rm git git --version # 输出示例:git version 2.43.0
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 [***] .
./my-repo 会被创建并保存克隆的仓库数据,容器删除后数据仍保留Git 提交时需配置用户姓名和***,可通过以下两种方式设置:
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 '***' && git commit -m 'Initial commit' "
使用 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=***" \ git git commit -m 'Initial commit'
若需通过 SSH 协议访问远程仓库(如 ***: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 ***: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=***
启动并进入容器:
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=*** |
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 | 提交者*** | *** |
core.editor | 默认编辑器 | vim |
remote.origin.url | 远程仓库地址 | [***] |
-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=[***])。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务