BinBashFR
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Docker manifest

    Technos
    docker
    1
    1
    336
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • remi
      remi last edited by

      Re : Installer un registry Docker privé et multiarch

      Depuis cet article, docker intègre la gestion des manifests dans son cli. C’est expérimental mais bon… Ca fonctionne 🤘

      Configuration du cli

      Il faut autoriser votre cli à utiliser les commandes expérimentales en rajoutant à votre config Docker (par exemple ~/.docker/config.json) :

      {
          "experimental": "enabled"
      }
      

      Création du manifest

      Si j’ai créé 2 images Docker nommées :

      • ${REGISTRY}/${NAME}-amd64-linux:latest
      • ${REGISTRY}/${NAME}-arm-linux:latest

      alors :

      $ docker manifest create ${REGISTRY}/${NAME}:latest ${REGISTRY}/${NAME}-amd64-linux:latest ${REGISTRY}/${NAME}-arm-linux:latest
      

      Attention : la nom des images est important si vous souhaitez que Docker reconnaisse automatiquement l’OS et l’architecture de votre image ! Dans les faits, et peut-être parce que c’est expérimental 😁, j’ai du annoter l’image pour lui forcer l’architecture :

      $ docker manifest annotate ${REGISTRY}/${NAME}:latest ${REGISTRY}/${NAME}-arm-linux:latest --arch arm
      

      Pour vous assurer que tout est ok, faites un inspect de votre image (avant le annote pour vérifier qu’il est toujours utile ?) :

      $ docker manifest inspect ${REGISTRY}/${NAME}:latest
      {
         "schemaVersion": 2,
         "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
         "manifests": [
            {
               "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
               "size": 593,
               "digest": "sha256:b113",
               "platform": {
                  "architecture": "amd64",
                  "os": "linux"
               }
            },
            {
               "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
               "size": 593,
               "digest": "sha256:6e50a",
               "platform": {
                  "architecture": "arm",
                  "os": "linux"
               }
            }
         ]
      }
      

      Publier sur le registry

      C’est le plus simple :

      $ docker manifest push ${REGISTRY}/${NAME}:latest
      

      La doc officielle est ici.

      1 Reply Last reply Reply Quote 0
      • First post
        Last post