Heim > Backend-Entwicklung > Golang > Wie verwende ich Docker mit Go?

Wie verwende ich Docker mit Go?

WBOY
Freigeben: 2023-05-11 16:01:42
Original
1676 Leute haben es durchsucht

Mit der allmählichen Popularisierung der Cloud-Computing-Technologie hat Docker als leichte Containerisierungstechnologie mehr Aufmerksamkeit auf sich gezogen. Als effiziente und prägnante Programmiersprache der neuen Generation kann die Go-Sprache in Kombination mit Docker die Entwicklungseffizienz von Programmierern verbessern. In diesem Artikel wird die Verwendung von Docker in der Go-Sprache vorgestellt.

Einführung in Docker verwaltet, Ressourcen können aber auch flexibel erweitert und verkleinert werden.

Einfach zu verwenden
  1. Die API von Docker ist einfach und leicht zu verstehen und kann problemlos in Anwendungen integriert werden.

Hardwareressourcen sparen
  1. Docker kann die Nutzung physischer Serverressourcen maximieren und die Hardwareauslastung verbessern.

2. So verwenden Sie Docker in der Go-Sprache

    Es gibt zwei Hauptmöglichkeiten, Docker in der Go-Sprache zu verwenden:
Verwendung der Docker-API

Docker bietet eine REST-API-Schnittstelle, die die Containerverwaltung durch Senden von HTTP-Anfragen ermöglicht andere Funktionen.

Das Folgende ist ein einfaches Beispiel, um zu veranschaulichen, wie die Docker-API in der Go-Sprache verwendet wird.

    Zuerst müssen Sie das Paket „net/http“ in der Go-Sprache verwenden, um HTTP-Anfragen zu senden. Detaillierte Informationen zur Anfrage finden Sie in der offiziellen Dokumentation von Docker. Wenn Sie beispielsweise einen Container erstellen, können Sie den folgenden Befehl verwenden:
  1. curl -X POST -H "Content-Type: application/json" -d '{
  "Image": "ubuntu",
  "AttachStdin": false,
  "AttachStdout": true,
  "AttachStderr": true,
  "Tty": true,
  "OpenStdin": true,
  "StdinOnce": false
}' http://localhost:4243/containers/create?name=myubuntu
Nach dem Login kopieren

wobei die angeforderte URL „http://localhost:4243/containers/create?name=myubuntu“ lautet und der Anforderungstyp POST ist. Bei erfolgreicher Erstellung wird die Container-ID zurückgegeben, andernfalls wird eine Fehlermeldung zurückgegeben.

wird in der Go-Sprache wie folgt implementiert:

import (

„bytes“

„encoding/json“

„io/ioutil“

„net/http“

„os“

)

func createContainer(name string) ( string, error) {
//Angeforderte URL
url := „http://localhost:4243/containers/create?name=" + name
//Anforderungsmethode POST
req, err := http.NewRequest(" POST", url, nil)
if err != nil {

return "", err
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

}

//Anfrage-Header-Informationen festlegen
req.Header.Set("Content-Type", "application/json")
//Anfrage senden
resp, err := http.DefaultClient.Do(req)
if err != nil {

return "", err
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

}

defer resp.Body.Close()

//Lesen Sie den Inhalt des Rückgabeergebnisses
, err := ioutil.ReadAll (resp.Body)
if err != nil {

return "", err
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

}


//Vom Parsing zurückgegebenes Ergebnis

var respStruct struct {

Id string `json:"Id"`
Nach dem Login kopieren

}
err = json.Unmarshal(content, &respStruct)

if err != nil {

return "", err
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

}

//Container-ID zurückgeben
return respStruct.Id, nil

}



Verwenden Sie das Go-Sprach-SDK von Docker.


Docker stellt offiziell das Go-Sprach-SDK bereit, das direkt in der Go-Sprache verwendet werden kann. Installieren Sie zunächst das SDK über den folgenden Befehl:

go get github.com/docker/docker/client

    Verwenden Sie dann zur einfachen Verwendung die Pakete „context“ und „github.com/docker/docker/client“ der Go-Sprache Dockers SDK. Hier ist ein einfaches Beispiel:
  1. import (
"context"

"github.com/docker/docker/api/types"

"github.com/docker/docker/client"

)

func main() {

//Mit Docker verbinden

ctx := context.Background()
dockerCli, err := client.NewClientWithOpts(client.FromEnv)
if err != nil {

panic(err)
Nach dem Login kopieren
Nach dem Login kopieren

}

//Alle Container auflisten

Container, err : = dockerCli.ContainerList(ctx,types.ContainerListOptions{})
if err != nil {

panic(err)
Nach dem Login kopieren
Nach dem Login kopieren

}
//Container-ID und -Namen ausgeben

für _, Container := Bereich Container {

fmt.Println(container.ID, container.Names)
Nach dem Login kopieren

}
}
3. Zusammenfassung


Docker ist in der Tat eine sehr hervorragende Containerisierungstechnologie, und die Go-Sprache ist auch eine Programmiersprache für schnelle Entwicklung. Durch die Kombination beider Funktionen können Programmierer eine effizientere Entwicklungserfahrung erhalten. In diesem Artikel werden zwei Möglichkeiten zur Verwendung von Docker in der Go-Sprache vorgestellt. Ich hoffe, dass er den Lesern hilfreich sein wird.

Das obige ist der detaillierte Inhalt vonWie verwende ich Docker mit Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage