Documentation!
Lorsque vous décidez d'écrire votre propre vélo à accrocher à partir du hub Docker ou du registre pour mettre à jour / lancer automatiquement les conteneurs sur le serveur, vous devrez peut-être Docker Cli, qui vous aidera à gérer le démon Docker sur votre système.

Pour fonctionner, vous aurez besoin de la version Go non inférieure à 1.9.4
Si vous n'êtes toujours pas passé aux modules, installez Cli avec la commande suivante:
go get github.com/docker/docker/client
Lancement de conteneurs
L'exemple suivant montre comment démarrer un conteneur à l'aide de l'API Docker. Dans la ligne de commande, vous utiliseriez la docker run
, mais nous pouvons facilement faire face à cette tâche dans notre service.
Cet exemple équivaut à exécuter la commande docker run alpine echo hello world
package main { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }
Obtenir une liste des conteneurs en cours d'exécution
Cet exemple équivaut à exécuter la docker ps
package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { cli, err := client.NewEnvClient() if err != nil { panic(err) }
Arrêtez tous les conteneurs en cours d'exécution
Une fois que vous avez appris à créer et à exécuter des conteneurs, il est temps d'apprendre à les gérer. L'exemple suivant arrête tous les conteneurs en cours d'exécution.
N'exécutez pas ce code sur un serveur de production!
package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }
Enregistrement d'un seul conteneur
Vous pouvez travailler avec des conteneurs individuels. L'exemple suivant affiche les journaux du conteneur avec l'identificateur spécifié. Avant de commencer, vous devez modifier l'identifiant du conteneur dont vous souhaitez recevoir les journaux.
package main import ( "context" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) } options := types.ContainerLogsOptions{ShowStdout: true}
Obtenir la liste des images
Cet exemple équivaut à exécuter l' docker image ls
package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { cli, err := client.NewEnvClient() if err != nil { panic(err) }
Tirer
Cet exemple équivaut à exécuter la docker pull
package main import ( "context" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }
Télécharger l'image avec l'authentification utilisateur
Cet exemple équivaut à exécuter la docker pull
avec authentification.
Les données d'authentification sont envoyées en texte clair. Le registre Docker officiel utilise HTTPS,
Les registres privés doivent également être configurés pour transmettre des données à l'aide de HTTPS.
package main import ( "context" "encoding/base64" "encoding/json" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }