docker - 如何创建包含公共(public)和私有(private)图像的 docker-compose.yml 文件?

标签 docker docker-compose dockerhub azure-container-service

我正在尝试创建一个 docker-compose.yml为工作中的特定开发人员团队提交文件。我已经将我们的私有(private)镜像推送到私有(private)注册表(Azure Container Registry),这没关系/工作:)

接下来我试图测试如何让这个特定团队的开发人员运行 docker-compose文件将拉下所有图像,然后将它们全部启动。

我发现开发人员需要这样做:

-> docker login -u <admin username of my registry> <domain of the registry>
-> docker-compose pull

这会拉下我的私有(private)图像(来自 ACR 私有(private)注册表),但不会拉下 docker hub(公共(public)注册表)中的任何图像。
  • Q1:可以混搭吗?
  • Q2:是否有另一种方法可以创建一个只读的“用户”。我读过一些关于 service accounts 的东西或其他东西,但这真的很令人困惑,我不知道该怎么做/如果那是正确的方法。

  • 这是我的示例 docker-compose 的片段文件,其中包含公共(public)和私有(private)图像。请注意我如何尝试完全限定图像域......
    version: '3.5'
    
    services:
    
    ravendb.data:
      image: hub.docker.com/ravendb/ravendb
      expose: 
        - "8080"
      networks:
        - backend
      container_name: ravendb.data
      labels:
        - "traefik.enable=false"
    
    accounts.api:
      image: <snip>.azurecr.io/<snip>/<snip>
      networks:
    <rest all snipped>
    

    最佳答案

    Q1 - 两个问题,有些相关 -

  • RavenDB image 中的 Docker Hub 注册表 FQDN 错误指令 - hub.docker.com是人类可读的网站,公共(public) Docker 注册表位于 registry.hub.docker.comindex.docker.io (将 v1 附加到这些 uri 以获取 API)。
  • 您不需要完整的公共(public)注册表 FQDN 从公共(public)注册表中提取 - 这是默认设置,如果 docker 命令在图像名称之前的图像标记中未检测到 FQDN,则默认情况下将从那里提取。

  • Q2 - 我不确定 Azure Container Registry 是如何工作的,但如果你不能创建只读用户,我会感到惊讶。普通注册表是一个基于 REST 的 API 服务器,可以通过在内部设置其权限或通过在其前面放置一个反向代理来控制,其中 POST/PUT/DELETE 和 PATCH 动词需要与 GET 动词不同的身份验证用户.

    关于docker - 如何创建包含公共(public)和私有(private)图像的 docker-compose.yml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53578811/

    相关文章:

    docker - 为什么我不能在本地构建然后运行我的容器

    ubuntu - E : Unable to locate package redis-server

    laravel - 组地址 : invalid group ID 'laradock' error when running docker-compose up

    docker - 无法构建 : Get https://registry-1. docker.io/v2/microsoft/aspnetcore/manifests/1.1:未授权:用户名或密码不正确

    docker - 如何将我的Hybris项目转换为Docker镜像

    apache - 如何在 docker 容器中运行 puppet agent 来构建它。我如何实现这一目标?

    django - 使用 Docker-Compose 和 nginx-proxy 时出现 502 Bad Gateway 错误

    node.js - 等待 node.js 直到 Logstash 准备好使用容器

    docker - 为什么 "docker push"会推送几张图片,在哪里?

    registry - 用于访问存储库的 Dockerhub 注册表 API URL