Ich habe den folgenden Code und ein Aufruf an die API gibt einen Fehler wie folgt zurück, ich habe auch Docker Daemon-Befehl unten eingefügt. Ich habe ein paar Kombinationen aus HTTP/HTTPS/TCP mit/ohne TLS ausprobiert.Docker API-Aufruf gibt zurück "Server gab HTTP-Antwort an HTTPS-Client"
Wo könnte ich hier falsch liegen?
"Panik: Fehler versucht, eine Verbindung herzustellen: https://172.28.8.212:2375/v1.24/containers/json?limit=0 Get: http: Server gab HTTP-Antwort auf HTTPS-Client "
func main() {
var headers map[string]string
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
cl := &http.Client{Timeout: time.Minute}
cli, err := client.NewClient("tcp://172.28.8.212:2375", "1.24", cl, headers)
if err != nil {
panic(err)
}
containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{})
if err != nil {
panic(err)
}
for _, container := range containers {
fmt.Printf("%s %s\n", container.ID[:10], container.Image)
}
}
Mein Docker Daemon gestartet wird als
[Unit]
Description = Docker Service Daemon
[Service]
ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=consul://172.28.8.211:8500
Ich bin nicht sicher, wie diese Client-API verwendet wird, aber warum liefern Sie ein "http.Client", wenn Sie nur eine Verbindung zu einem 'tcp:// 'Protokoll? – JimB
2375 ist der HTTP-Port. 2376 ist der Standard-HTTPS-Port. – johnharris85