2016-06-30 1 views
1

Je veux récupérer toutes les images docker d'une machine à distance, donc je me sers docker/moteur-api: https://github.com/docker/engine-apiComment se connecter à une socket distante dans docker/engine-api?

J'ai réussi à retourner les images docker de ma machine locale avec le code suivant:

package main 

import (
    "fmt" 

    "github.com/docker/engine-api/client" 
    "github.com/docker/engine-api/types" 
    "golang.org/x/net/context" 
) 

func main() { 
    defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"} 
    cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.22", nil, defaultHeaders) 

    if err != nil { 
     panic(err) 
    } 

    options := types.ContainerListOptions{All: true} 
    containers, err := cli.ContainerList(context.Background(), options) 
    if err != nil { 
     panic(err) 
    } 

    for _, c := range containers { 
     fmt.Println(c.ID) 
    } 
} 

Mais maintenant quelqu'un sait comment puis-je récupérer les images docker d'une machine distante donné son adresse, le nom d'utilisateur et mot de passe

Répondre

-1

une meilleure solution est d'utiliser le go-dockerclient dans github qui « fournit un support pour l'API réseau de docker, qui est un simple passthrough à la libnetwork API à distance »

+0

La question était de savoir comment se connecter à une prise à distance en docker/engine-api (en utilisant https://github.com/docker/engine-api). @AxelWass a fourni la bonne solution. – CodeWarrior

3

Ce genre de socket Unix n'est accessible par proccesses dans la même machine.

Pour accéder à votre docker à partir d'une machine distante, vous devez l'exécuter avec une configuration spéciale pour l'exécuter sur IP.

Cette configuration est DOCKER_OPTS="-H <ip_address>:<port>" (ou -H 0.0.0.0:<port> si vous l'écoutez pour écouter sur toutes les interfaces), et cela dépend de la version que vous utilisez de docker où vous devez le configurer.

Here vous pouvez trouver plus d'informations sur l'endroit où configurer DOCKER_OPTS en fonction de la version du système d'exploitation.

J'espère que ça aide!