
patrickmuniz/docker-with-compose本镜像基于Docker in Docker(Dind)技术构建,预装Docker Compose工具,旨在提供一个隔离的容器环境,允许用户在容器内部运行Docker引擎及Docker Compose项目。通过该镜像,用户可快速搭建具备完整Docker功能的隔离环境,无需在宿主机直接安装Docker服务。
docker-compose命令管理多容器应用docker build、docker run、docker ps等)docker-compose up、docker-compose down等命令docker run启动容器bashdocker run -d \ --privileged \ --name dind-with-compose \ -v /var/lib/docker \ -e DOCKER_TLS_CERTDIR=/certs \ <镜像名称>
注意:
--privileged标志是运行Docker in Docker的必要条件,因为Docker守护进程需要访问宿主机的设备和内核功能。
bash# 进入运行中的容器 docker exec -it dind-with-compose sh # 验证Docker运行状态 docker info # 验证Docker Compose版本 docker-compose --version
通过挂载宿主机目录到容器内/var/lib/docker,实现Docker数据(镜像、容器、卷等)的持久化:
bashdocker run -d \ --privileged \ --name dind-with-compose \ -v /path/on/host:/var/lib/docker \ # 宿主机目录挂载到容器内Docker数据目录 <镜像名称>
默认情况下,Dind镜像启用TLS加密通信。在开发环境中可通过设置DOCKER_TLS_CERTDIR=""禁用TLS,简化配置:
bashdocker run -d \ --privileged \ --name dind-with-compose \ -e DOCKER_TLS_CERTDIR="" \ # 禁用TLS <镜像名称>
通过DOCKER_OPTS环境变量传递额外的Docker守护进程启动参数(如自定义镜像仓库、日志配置等):
bashdocker run -d \ --privileged \ --name dind-with-compose \ -e DOCKER_OPTS="--insecure-registry my-registry.local:5000" \ # 添加自定义仓库配置 <镜像名称>
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
DOCKER_TLS_CERTDIR | TLS证书存储目录,设置为空字符串可禁用TLS | /certs |
DOCKER_OPTS | 传递给Docker守护进程的额外启动参数(如--registry-mirror、--log-driver等) | 空 |
COMPOSE_PROJECT_NAME | Docker Compose默认项目名称(影响容器命名前缀) | 空(使用目录名) |
--privileged标志会赋予容器几乎与宿主机相同的权限,存在安全风险。建议仅在可信环境(如隔离的CI/CD服务器)中使用,并限制容器的网络访问范围。--memory、--cpus等参数限制容器资源使用,避免影响宿主机性能。docker-compose --version命令查看)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务