本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
docker-in-docker-bitbucket-pipelines 是专为 Bitbucket Pipelines 设计的 Docker-in-Docker (DinD) 镜像,旨在提供容器内独立的 Docker 运行环境。该镜像集成 Docker 引擎与 CLI 工具,允许在 Bitbucket CI/CD 流水线中直接执行 Docker 命令,无需依赖宿主机 Docker 环境。
解决 Bitbucket Pipelines 原生环境中缺乏 Docker 守护进程的限制,支持在流水线中完成 Docker 镜像构建、容器运行、镜像推送等操作,无缝衔接容器化应用的自动化构建与部署流程。
docker build、docker run、docker push 等所有标准命令。docker:dind 镜像构建,镜像体积小,启动速度快。docker buildx 实现跨平台镜像构建或多阶段构建(如编译阶段→运行阶段分离)。在 bitbucket-pipelines.yml 中通过 services 配置引入该镜像,作为独立服务提供 Docker 守护进程,主构建容器通过网络连接使用其服务。
image: docker:latest # 主构建容器使用 Docker CLI 镜像 pipelines: default: - step: name: "Build and push Docker image" services: - docker # 引入 DinD 服务(此处需替换为实际镜像名,如 your-registry/docker-in-docker-bitbucket-pipelines:latest) script: # 1. 登录 Bitbucket 容器仓库(使用 Bitbucket 内置环境变量) - docker login -u $BITBUCKET_REGISTRY_USER -p $BITBUCKET_REGISTRY_PASSWORD $BITBUCKET_REGISTRY # 2. 构建镜像(标签格式:仓库地址/项目名/镜像名:提交哈希) - docker build -t $BITBUCKET_REGISTRY/$BITBUCKET_REPO_SLUG:$BITBUCKET_COMMIT . # 3. 推送镜像至仓库 - docker push $BITBUCKET_REGISTRY/$BITBUCKET_REPO_SLUG:$BITBUCKET_COMMIT caches: - docker # 缓存 Docker 层,加速后续构建
image: docker:latest pipelines: branches: main: - step: name: "Build, test and push production image" services: - docker script: # 构建测试镜像 - docker build --target test -t app-test . # 运行容器并执行测试 - docker run --rm app-test npm run test # 构建生产镜像 - docker build --target production -t $BITBUCKET_REGISTRY/app-prod:$BITBUCKET_COMMIT . # 推送生产镜像 - docker push $BITBUCKET_REGISTRY/app-prod:$BITBUCKET_COMMIT
如需在本地复现 Bitbucket Pipelines 环境,可通过 docker run 命令直接启动镜像:
# 启动 DinD 容器(需特权模式) docker run -d \ --privileged \ --name bitbucket-dind \ -e DOCKER_TLS_CERTDIR=/certs \ # 启用 TLS 加密 -v dind-certs:/certs/client \ # 挂载证书卷(持久化 TLS 证书) your-registry/docker-in-docker-bitbucket-pipelines:latest # 启动客户端容器,连接 DinD 服务 docker run -it \ --link bitbucket-dind:docker \ # 链接 DinD 容器 -e DOCKER_HOST=tcp://docker:2376 \ # 指定 Docker 守护进程地址 -e DOCKER_TLS_VERIFY=1 \ # 启用 TLS 验证 -e DOCKER_CERT_PATH=/certs/client \ # 指定证书路径 -v dind-certs:/certs/client \ # 挂载共享证书卷 docker:latest \ sh # 进入客户端容器执行 Docker 命令
| 变量名 | 描述 | 默认值 |
|---|---|---|
DOCKER_HOST | Docker 守护进程地址(供客户端连接) | tcp://localhost:2376 |
DOCKER_TLS_CERTDIR | TLS 证书存储目录(为空时禁用 TLS) | /etc/docker/tls |
DOCKER_DRIVER | Docker 存储驱动(如 overlay2、devicemapper) | overlay2 |
DOCKER_OPTS | 传递给 Docker 守护进程的额外参数(如 --log-level=info、--debug) | 空 |
BITBUCKET_REGISTRY | Bitbucket 容器仓库地址(用于镜像推送,可通过 Bitbucket 内置变量获取) | [***] |
BITBUCKET_REGISTRY_USER:Bitbucket 容器仓库登录用户名(通常为 $BITBUCKET_USERNAME)。BITBUCKET_REGISTRY_PASSWORD:Bitbucket 容器仓库登录密码(需在 Bitbucket 项目设置→Repository variables 中配置为 Secured 类型)。--privileged)下运行,以确保 Docker 引擎能访问宿主机内核功能(如挂载、网络栈)。caches: [docker] 配置缓存 Docker 层,可显著减少重复构建时间。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429