2015-07-13 21 views
12

Ich bin neu in Docker. Ich habe die tutorial in Docker Remote API gelesen. In Aspekt des Erstellens von Containern. Es zeigt mir zu viele Param zu füllen. Ich will wissen, was mit diesem Befehl entspricht:Wie benutze ich docker remote api um Container zu erstellen?

Docker run -d -p 5000: 5000 --restart = immer --name Registry Registrierung: 2.

Ich habe keine Ahnung davon. Kann mir das jemand sagen? Vielen Dank!

Antwort

9

Ursprüngliche Antwort (Juli 2015):

Das wäre (nicht direkt getestet), wie in this tutorial (vorausgesetzt, die remote API is enabled):

zuerst die Container erstellen:

curl -v -X POST -H "Content-Type: application/json" -d '{"Image": " registry:2.",}' http://localhost:2376/containers/create?name=registry 

Dann starten es:

curl -v -X POST -H "Content-Type: application/json" -d '{"PortBindings": { "5000/tcp": [{ "HostPort": "5000" }] },"RestartPolicy": { "Name": "always",},}' http://localhost:2376/containers/registry/start?name=registry 

Update Februar é017, für Docker 1.13 + siehe rocksteadyanswer, mit einer ähnlichen Idee, aber mit der aktuellen engine/api/v1.26.

+0

Vielen Dank für Ihre Antwort, habe ich Erfolg haben. – v11

+0

Ich benutze HttpClient in Java, um API zu verbinden, addiere Parameter, den du zeigst, es gibt mir Fehler über "ungültiges Zeichen 'I', das nach Anfangswert sucht", warum? Ich aktualisiere meine Frage. – v11

+0

@ v11 Wenn Sie erwähnten, dass Sie bereits erfolgreich waren, könnten Sie das zu einer neuen Frage machen? Das wird anderen erlauben, dieses für die Locke zu verwenden. Die Java-API wurde anfangs nicht erwähnt. – VonC

3

Mehr oder weniger nur VonC s Antwort kopieren, um auf die aktuelle Version von docker (1.13) und docker remote api version (v1.26) zu aktualisieren.

Was ist anders:

  • die Konfiguration muss alle getan werden, wenn der Behälter erstellt wird, sonst wird die folgende Fehlermeldung zurückgegeben wird, wenn der Behälter ausgehend den Weg VonC tat. {"message":"starting container with non-empty request body was deprecated since v1.10 and removed in v1.12"}

Erstellen Sie zunächst den Container:(einschließlich aller Konfiguration) curl -v -X POST -H "Content-Type: application/json" -d @docker.conf http://localhost:2376/containers/create?name=registry Die Datei docker.conf wie folgt aussieht:

{ 
    "Image": registry:2.", 
    "ExposedPorts": { 
    "5000/tcp": {} 
    }, 
    "HostConfig": { 
    "PortBindings": { 
     "5000/tcp": [ 
     { 
      "HostPort": "5000" 
     } 
     ] 
    }, 
    "RestartPolicy": { 
     "Name": "always" 
    } 
    "AutoRemove": true 
    } 
} 

Dann ist es starten:(der Parameter Name ist nicht notwendig, der Behälter nur Registrierung gestattet) curl -v -X POST -H "Content-Type: application/json" http://localhost:2376/containers/registry/start

+1

Schönes Update zu meiner älteren Antwort.+1 – VonC

+0

Hilfreiche Antwort an erster Stelle. – rocksteady

Verwandte Themen