xkand/dind 镜像基于 "Docker in Docker"(简称 dind)技术实现,允许在容器内部运行完整的 Docker 引擎。通过该镜像,用户可在隔离的容器环境中执行 Docker 命令(如构建镜像、运行容器、管理容器网络等),无需依赖宿主机的 Docker 环境。
提供独立的 Docker 运行时环境,适用于需要在容器内嵌套运行 Docker 的场景,如 CI/CD 流水线、开发环境隔离、测试环境快速部署等。
daemon.json 文件,自定义 Docker 引擎配置(如镜像加速、存储驱动等)。privileged: true)启动,确保容器内 Docker 引擎正常访问宿主机内核资源。host 和 bridge 两种网络模式,适应不同网络隔离需求。tty 和 stdin_open,支持交互式操作容器内环境。overlay2 存储驱动)。通过 docker-compose.yml 配置文件可快速部署,支持自定义参数。以下为完整配置示例及说明:
yamlversion: '3' services: dind: image: xkand/dind:latest # 使用最新版本镜像 container_name: dind # 容器名称,可自定义 restart: always # 容器退出后自动重启 tty: true # 启用终端支持 stdin_open: true # 保持标准输入打开,支持交互式操作 privileged: true # 必须开启特权模式,确保 Docker 引擎正常运行 volumes: # 持久化 Docker 数据(镜像、容器、卷等),映射宿主机 ./data 目录到容器 /var/lib/docker - ./data:/var/lib/docker # 映射宿主机自定义 daemon.json 到容器,配置 Docker 引擎(如镜像加速、日志驱动等) - ./daemon.json:/etc/docker/daemon.json # 映射宿主机 ./docker 目录到容器 /root/docker,用于存放用户自定义脚本或配置 - ./docker:/root/docker # 网络模式:可选 host 或 bridge(二选一) network_mode: host # host 模式:容器共享宿主机网络,无需端口映射 # bridge 模式:需手动映射端口(右侧端口需与环境变量 SSH_PORT 一致) # ports: # - "32321:32321" # 例如:宿主机 32321 端口映射到容器 SSH 端口 environment: - ROOT_PASSWORD=*** # SSH 登录密码,默认值:无(建议显式设置) - SSH_PORT=32321 # SSH 服务端口,默认值:32321(自定义时需同步端口映射) # 可选:如需支持 GPU 资源(如容器内运行 GPU 镜像),添加设备映射 # devices: # - /dev/dri:/dev/dri # 映射 GPU 设备(需宿主机支持)
部署步骤:
docker-compose.yml 文件,复制上述配置并根据需求修改参数(如密码、端口、卷路径)。bashdocker-compose up -d # 后台启动服务
如需快速启动,可直接使用 docker run 命令,示例如下(参数与 Compose 配置对应):
bashdocker run -d \ --name dind \ --restart always \ -t \ -i \ --privileged \ -v ./data:/var/lib/docker \ -v ./daemon.json:/etc/docker/daemon.json \ -v ./docker:/root/docker \ --network host \ -e ROOT_PASSWORD=*** \ -e SSH_PORT=32321 \ xkand/dind:latest
说明:
-t -i 对应 Compose 中的 tty: true 和 stdin_open: true。--privileged 必须添加,否则容器内 Docker 引擎无法启动。bridge 网络模式,替换 --network host 为 -p 32321:32321(端口需与 SSH_PORT 一致)。| 参数名 | 描述 | 默认值 | 必要性 |
|---|---|---|---|
ROOT_PASSWORD | SSH 服务的 root 用户密码 | 无 | 建议显式设置 |
SSH_PORT | SSH 服务监听端口 | 32321 | 可选,默认 32321 |
| 宿主机路径 | 容器路径 | 作用说明 |
|---|---|---|
./data | /var/lib/docker | 持久化 Docker 引擎数据(镜像、容器、卷、网络配置等),避免容器重启后数据丢失。 |
./daemon.json | /etc/docker/daemon.json | 自定义 Docker 引擎配置(如 registry-mirrors 镜像加速、log-driver 日志驱动等)。 |
./docker | /root/docker | 可选,用于存放用户自定义脚本、配置文件等,方便在容器内访问。 |
-p <宿主机端口>:<容器端口> 映射 SSH 端口,且容器端口需与 SSH_PORT 一致(如 32321:32321)。优势:网络隔离性好;劣势:需手动配置端口映射。privileged: true:必须开启,Docker 引擎运行依赖宿主机内核资源(如 cgroup、设备访问等),特权模式允许容器访问宿主机所有设备。restart: always:确保容器异常退出后自动重启,提高可用性(根据需求可调整为 on-failure 等策略)。tty: true 与 stdin_open: true:支持通过 docker exec -it dind /bin/bash 进入容器交互式操作。daemon.json 时,需确保配置格式正确(JSON 语法),否则 Docker 引擎可能启动失败。./data 目录包含关键数据,建议定期备份,避免数据丢失。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429