gitlab/dind重要提示:gitlab/dind 镜像已被官方标记为弃用,且不再提供更新。请立即迁移至 Docker 官方 DinD 镜像(docker:dind)以获取持续支持和安全更新。
gitlab/dind 是 GitLab 官方曾提供的基于 Docker-in-Docker(DinD)模式的镜像,设计用于在 CI/CD 流水线中实现 Docker 工作流构建。其核心目标是允许用户在构建环境中直接运行 Docker 引擎,从而实现在容器内部构建、测试和推送 Docker 镜像的能力,尤其适用于需要嵌套 Docker 操作的自动化场景。
在未弃用前,该镜像主要包含以下功能:
docker build、docker run、docker push 等)。docker-compose.yml 文件定义和管理多容器应用。原 gitlab/dind 镜像主要适用于以下场景:
gitlab/dind 镜像使用(已弃用,不推荐)警告:以下内容仅作历史参考,该镜像已停止更新,存在安全风险,请勿在生产环境使用。
bashdocker run --privileged -d gitlab/dind
--privileged:DinD 模式需要特权模式以允许容器内运行 Docker 引擎(安全性注意事项:特权模式会提升容器权限,生产环境需谨慎)。yaml# .gitlab-ci.yml(历史配置,已不推荐) stages: - build build-docker-image: stage: build image: gitlab/dind services: - docker:dind # 实际应直接使用官方 DinD 服务 script: - docker build -t my-app . - docker push my-app:latest
docker:dind)bashdocker run --privileged -d \ -v /var/lib/docker \ # 可选:挂载宿主机 Docker 存储目录(提升性能,非必须) -e DOCKER_TLS_CERTDIR=/certs \ # 启用 TLS(推荐安全配置) docker:dind
yaml# docker-compose.yml version: '3' services: dind: image: docker:dind privileged: true environment: - DOCKER_TLS_CERTDIR=/certs volumes: - dind-data:/var/lib/docker # 持久化 Docker 数据 - ./certs:/certs/client # 挂载 TLS 证书目录(供客户端使用) ports: - "2376:2376" # TLS 端口(默认安全端口) volumes: dind-data:
yaml# .gitlab-ci.yml(推荐配置) stages: - build variables: DOCKER_HOST: tcp://docker:2376 DOCKER_TLS_CERTDIR: "/certs" DOCKER_DRIVER: overlay2 # 推荐使用 overlay2 存储驱动提升性能 build-docker-image: stage: build image: docker:latest # 使用官方 Docker 客户端镜像 services: - name: docker:dind command: ["--storage-driver", "overlay2"] script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:latest
| 环境变量 | 描述 | 默认值 |
|---|---|---|
DOCKER_TLS_CERTDIR | 指定 TLS 证书存储目录,设为空字符串可禁用 TLS(不推荐) | /certs |
DOCKER_HOST | Docker 守护进程地址(客户端连接使用) | unix:///var/run/docker.sock |
DOCKER_DRIVER | Docker 存储驱动(推荐 overlay2 以提升性能) | 取决于宿主机配置 |
DOCKER_OPTS | 传递给 Docker 守护进程的额外参数(如 --insecure-registry 等) | 无 |
--privileged 标志,会赋予容器接近宿主机的权限,生产环境需严格限制使用范围,并通过网络隔离、资源限制等手段降低风险。/var/lib/docker)优化存储性能。docker:dind 镜像需与客户端镜像版本匹配(如 docker:20.10-dind 对应 docker:20.10 客户端),避免因 API 版本不一致导致问题。gitlab/dind 镜像已停止维护,用户应立即迁移至 Docker 官方 DinD 镜像(docker:dind)。官方镜像提供更完善的安全更新、版本支持和社区维护,且与主流 CI/CD 平台(如 GitLab CI、GitHub Actions)兼容性良好,是 Docker-in-Docker 场景的推荐选择。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务