Docker构建成功但镜像未显示?GitHub Actions+Colima部署求助
排查GitHub Actions构建Docker镜像后本地无法找到的问题
核心原因
GitHub Actions的构建环境(云端Runner或自托管Runner)与你本地Mac的Docker/Colima环境完全隔离——构建的镜像默认只存在于Runner的临时环境中,Runner执行完任务后会被销毁,本地自然看不到。
排查步骤
- 检查你的GitHub Actions YML脚本:是否包含
docker push或镜像导出/上传的步骤?如果只有docker build命令,构建后的镜像不会同步到本地。 - 确认构建日志中的镜像标签:是否和你本地手动构建的标签一致?如果标签不同,就算后续拉取也可能找不到。
- 若使用自托管Runner(部署在本地Mac):检查Runner是否正确关联了Colima的Docker socket,以及Runner用户是否有Docker操作权限。
解决方案
方案1:推送镜像到远程仓库(推荐)
在GitHub Actions脚本中添加镜像推送步骤,推送到Docker Hub或GitHub Container Registry(GHCR),之后本地拉取即可:
- 在YML中添加登录步骤(以GHCR为例):
- name: Log in to GHCR uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - 构建并推送镜像:
- name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: ghcr.io/${{ github.repository }}/flask-app:latest - 本地执行拉取命令:
docker pull ghcr.io/<你的GitHub用户名>/<仓库名>/flask-app:latest
方案2:导出镜像为Artifact后本地导入(无需远程仓库)
如果不想推送到公共仓库,可将镜像打包成tar文件上传为GitHub Artifact,再下载到本地导入:
- 在YML脚本中添加构建、导出、上传步骤:
- name: Build Docker image run: docker build -t flask-app:latest . - name: Export image to tar run: docker save -o flask-app-image.tar flask-app:latest - name: Upload artifact uses: actions/upload-artifact@v4 with: name: flask-app-image path: flask-app-image.tar - 在GitHub Actions的Artifacts页面下载
flask-app-image.tar到本地 - 本地导入镜像:
docker load -i flask-app-image.tar
方案3:使用自托管Runner关联本地Docker/Colima
如果你的Runner部署在本地Mac,需确保Runner能访问Colima的Docker环境:
- 在Runner的启动脚本中添加环境变量配置:
export DOCKER_HOST=unix:///Users/<你的用户名>/.colima/default/docker.sock - 确认Runner的用户属于
docker用户组,拥有Docker操作权限:sudo usermod -aG docker <Runner用户名>
内容的提问来源于stack exchange,提问作者Yogyakartas
相关产品推荐
相关产品推荐

