Maison > développement back-end > Golang > le corps du texte

Comment exécuter des volumes de montage Docker à l'aide du SDK Docker Engine et de Golang

PHPz
Libérer: 2024-02-09 15:24:08
avant
890 Les gens l'ont consulté

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 安装卷

L'éditeur php Xigua vous présentera aujourd'hui comment utiliser le SDK du moteur Docker et Golang pour exécuter le volume d'installation de Docker. Docker est une plate-forme de conteneurisation populaire et le SDK Docker Engine est une bibliothèque d'API permettant d'interagir avec Docker Engine. Golang est un langage de programmation puissant qui peut être utilisé conjointement avec le SDK Docker Engine pour obtenir une gestion des conteneurs plus flexible. Cet article présentera en détail comment utiliser le SDK du moteur Docker et Golang pour créer, gérer et exécuter des volumes d'installation Docker, vous permettant ainsi de mieux utiliser Docker pour le développement et le déploiement d'applications. commençons!

Contenu de la question

Je consulte la documentation du SDK du moteur Docker (https://docs.docker.com/engine/api/sdk/) relative à l'exécution de Docker avec Golang Je souhaite exécuter un conteneur (bien documenté) mais je ne trouve pas comment monter un volume lors de l'exécution du conteneur.

Mon idée est d'utiliser le SDK Docker pour exécuter la commande équivalente : docker 运行 -v $PWD:/tmp myimage Mais la bibliothèque Golang os exec n'est pas exécutée.

Est-ce possible ?

Solution de contournement

La section exemples contient la plupart de ce dont vous avez besoin :

https://docs.docker.com/engine/api/sdk/examples/#run-a-container

C’est important de se rappeler docker run ... C’est un peu des deux

  1. Créer un conteneur
  2. Démarrer un conteneur

Abréviation de docker run -v docker run --mount type=bind,source="$(pwd)"/target,target=/app

    resp, err := cli.containercreate(ctx, &container.config{
        image: "alpine",
        cmd:   []string{"echo", "hello world",},
      },
      &container.hostconfig{
        mounts: []mount.mount{
          {
             type: mount.typebind,
             source: "/local/dir",
             target: "/app",
          },
        },
     },
     nil,
     "",
   )
Copier après la connexion

Si vous ne voulez qu'un seul fichier

    resp, err := cli.ContainerCreate(ctx, &container.Config{
        Image: "alpine",
        Cmd:   []string{"echo", "hello world",},
      },
      &container.HostConfig{
        Binds: []string{
          "/local/dir/file.txt:/app/file.txt",
        },
      },
      nil,
      "",
   )
Copier après la connexion

Connexe :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!