一句话预警同名但不同魂——表面都是 pull-commit-push,可 Git 操作的是 源码快照,Docker 操作的是 镜像层。别混用,否则坑很深。


TL;DR 对照表

操作 在 Git 里意味着… 在 Docker 里意味着… 常见场景
pull 拉远端分支并自动合并 拉远端镜像层到本地缓存 本地缺镜像或更新指定 tag
commit 把工作区改动写进历史 把运行中的容器快照成镜像 临时调试后想保留容器状态(生产里很少这么干)
push 把本地提交推到远端仓库 把本地镜像层推到远端镜像仓库 发布新镜像供 CI/CD 或集群用

关键差异 & 易踩的坑

  1. 对象不同:Git 关心文本文件;Docker 关心打包好的二进制环境。
  2. commit 不是日用操作:正式流程应写 Dockerfile → docker build,docker commit 只适合救急快照。
  3. pull 不会合并:拉完镜像不会自动更新容器,得重启或重新 deploy。
  4. 版本号方式:Git 用哈希 / 分支 / tag;Docker 用 repo:tag,无强制唯一。
  5. 没有冲突:镜像层只读,docker push 遇到同名 tag 要么覆盖要么被拒,不会像 Git 出 merge conflict。

“正确姿势”速记

text
1
2
3
git pull → 修改 → git commit → git push
↓ ↓
docker pull → 修改 Dockerfile → docker build → docker push

结语:一句话记忆

docker pull / push = Git 的拉取 / 推送;真正类似 “git commit” 的,其实是 docker build,而不是 docker commit。


Happy shipping!