Heim  >  Artikel  >  Backend-Entwicklung  >  So führen Sie Docker-Mount-Volumes mit dem Docker Engine SDK und Golang aus

So führen Sie Docker-Mount-Volumes mit dem Docker Engine SDK und Golang aus

PHPz
PHPznach vorne
2024-02-09 15:24:08854Durchsuche

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

Der PHP-Editor Xigua stellt Ihnen heute vor, wie Sie das Docker-Engine-SDK und Golang zum Ausführen von Docker-Installationsvolumes verwenden. Docker ist eine beliebte Containerisierungsplattform und das Docker Engine SDK ist eine API-Bibliothek für die Interaktion mit der Docker Engine. Golang ist eine leistungsstarke Programmiersprache, die in Verbindung mit dem Docker Engine SDK verwendet werden kann, um eine flexiblere Containerverwaltung zu erreichen. In diesem Artikel wird detailliert beschrieben, wie Sie Docker-Engine-SDK und Golang zum Erstellen, Verwalten und Ausführen von Docker-Installationsvolumes verwenden, sodass Sie Docker besser für die Anwendungsentwicklung und -bereitstellung nutzen können. Lasst uns beginnen!

Frageninhalt

Ich schaue mir die Docker-Engine-SDK-Dokumentation (https://docs.docker.com/engine/api/sdk/) an, die sich auf die Ausführung von Docker mit Golang bezieht Ich möchte einen Container ausführen (gut dokumentiert), kann aber nicht herausfinden, wie ich ein Volume bereitstellen kann, während der Container ausgeführt wird.

Meine Idee ist, das Docker SDK zu verwenden, um den entsprechenden Befehl auszuführen: docker 运行 -v $PWD:/tmp myimage Die Golang OS Exec-Bibliothek wird jedoch nicht ausgeführt.

Ist das möglich?

Problemumgehung

Der Abschnitt mit den Beispielen enthält das meiste, was Sie brauchen:

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

Es ist wichtig, sich daran zu erinnern docker run ..., dass es beides ist

  1. Erstellen Sie einen Container
  2. Starten Sie einen Container

Abkürzung für 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,
     "",
   )

Wenn Sie nur eine Datei möchten

    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,
      "",
   )

Verwandt:

Das obige ist der detaillierte Inhalt vonSo führen Sie Docker-Mount-Volumes mit dem Docker Engine SDK und Golang aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen