
由于https://github.com/docker-library/docker/pull/361%EF%BC%8C%E6%AD%A4Docker%E9%95%9C%E5%83%8F%E5%B7%B2%E4%B8%8D%E5%86%8D%E9%9C%80%E8%A6%81%E3%80%82
您应改用官方https://hub.docker.com/_/docker/%E3%80%82
https://github.com/tiangolo/docker-with-compose/workflows/Test/badge.svg](https://github.com/tiangolo/docker-with-compose/actions?query=workflow%3ATest) https://github.com/tiangolo/docker-with-compose/workflows/Deploy/badge.svg](https://github.com/tiangolo/docker-with-compose/actions?query=workflow%3ADeploy)
Dockerfile链接注意:存在https://hub.docker.com/r/tiangolo/docker-with-compose/tags%E3%80%82%E5%A6%82%E9%9C%80%E5%9B%BA%E5%AE%9A%E4%BD%BF%E7%94%A8%E7%9A%84Docker%E9%95%9C%E5%83%8F%E7%89%88%E6%9C%AC%EF%BC%8C%E5%8F%AF%E9%80%89%E6%8B%A9%E6%AD%A4%E7%B1%BB%E6%A0%87%E7%AD%BE%EF%BC%8C%E4%BE%8B%E5%A6%82 tiangolo/docker-with-compose:2021-09-17。
https://hub.docker.com/_/docker/%E5%86%85%E7%BD%AEhttps://github.com/docker/compose%EF%BC%8C%E9%80%82%E7%94%A8%E4%BA%8ECI%E7%8E%AF%E5%A2%83%EF%BC%88%E5%B7%B2%E5%BC%83%E7%94%A8%EF%BC%89%E3%80%82
本镜像的主要用途是帮助需要docker二进制文件、docker-compose二进制文件的持续集成环境,还可能需要执行其他小型任务,如运行shell脚本或使用curl通知API。
它包含上述两个程序(docker和docker-compose),并允许运行任意shell脚本(与官方Docker Compose镜像不同)。
无需在docker:latest镜像基础上安装docker-compose,可在云数据中心的每次构建中减少约10-15秒的构建时间。在网络连接不如云服务商的环境中,节省的时间会更多。
GitHub仓库:https://github.com/tiangolo/docker-with-compose
Docker Hub镜像:https://hub.docker.com/r/tiangolo/docker-with-compose/
拉取镜像:
console$ docker pull tiangolo/docker-with-compose
然后运行此镜像的容器时,需将Docker sock挂载为宿主卷。
通过将Docker sock挂载为卷,容器内的docker客户端可直接与主机上的Docker(Docker守护进程/服务)通信。
这样,您可以从容器内部发送Docker命令,如拉取、运行或构建新的Docker镜像。
您可能还需要挂载包含所需文件的宿主卷。
例如,假设有如下Dockerfile:
DockerfileFROM nginx RUN echo "Hello World" > /usr/share/nginx/html/index.html
您可以:
Dockerfile的本地目录。console$ docker run -v $(pwd):/app -v /var/run/docker.sock:/var/run/docker.sock tiangolo/docker-with-compose sh -c "cd /app/ && docker build -t custom-nginx ."
存在包含docker二进制文件的官方https://hub.docker.com/_/docker/%EF%BC%8C%E4%BB%A5%E5%8F%8Ahttps://hub.docker.com/r/docker/compose/%E3%80%82
但Docker Compose镜像将docker-compose作为入口点。
因此,无法在该镜像上运行其他命令,如安装软件(例如apt-get install -y curl)。
也无法直接运行docker命令,例如docker login -u ci-user -p $CI_JOB_TOKEN $CI_REGISTRY。
本镜像允许运行任意命令,如shell脚本、docker命令以及Docker Compose命令(如docker-compose build和docker-compose push)。
尽管多个持续集成系统允许在运行实际主脚本前执行前置步骤(如安装软件包),但每次下载和安装Docker Compose会导致构建变慢。
例如,一个简单的GitLab CI文件.gitlab-ci.yml可能如下:
yml# 不要使用此示例文件 image: docker:latest before_script: - apk add --no-cache py-pip - pip install docker-compose - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY ci: script: - docker-compose build - docker-compose up -d - docker-compose exec -T tests run-tests.sh - docker-compose down -v - docker stack deploy -c docker-compose.prod.yml --with-registry-auth prod-example-com
但当基础镜像每次必须下载并安装Docker Compose时,会增加流程时间。具体是以下行:
yml... - apk add --no-cache py-pip - pip install docker-compose ...
本镜像包含Docker Compose,并允许运行其他任意命令。
因此,GitLab CI的.gitlab-ci.yml文件可简化为:
ymlimage: tiangolo/docker-with-compose before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY ci: script: - docker-compose build - docker-compose up -d - docker-compose exec -T tests run-tests.sh - docker-compose down -v - docker stack deploy -c docker-compose.prod.yml --with-registry-auth prod-example-com
运行速度会更快,因为无需每次安装Docker Compose。
您可以按照DockerSwarm.rocks上的GitLab CI runner指南启动初始GitLab Runner。
同样适用于Travis、Jenkins或其他CI系统。
curl到已安装的可用软件包。PR https://github.com/tiangolo/docker-with-compose/pull/14 由 https://github.com/stratosgear 贡献。本项目基于MIT许可证授权。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务