2016-03-08 31 views
6

Sono nuovo in Docker e non riesco a connettermi a nessun contenitore.Impossibile connettersi ai contenitori Docker su OSX

Ho installato Docker Toolbox. Ora sto cercando di far funzionare Shipyard. Ho seguito i passaggi all'interno di un terminale Quickstart Docker. Le istruzioni dicono:

Una volta distribuito, lo script produrrà l'URL per connettersi con le informazioni sulle credenziali.

Il programma di installazione si è conclusa con Cantiere:

Shipyard available at http://10.0.2.15:8080 
Username: [elided] Password: [elided] 

Tuttavia, sono andato a http://10.0.2.15:8080 sul mio browser e non si era connessi.

In un altro Quickstart Terminal Portuale, ho fatto un docker ps per vedere che cosa era il contenitore e per ottenere il suo indirizzo IP ed ho ottenuto:

$ docker inspect a4755 | grep IPAddress 
      "SecondaryIPAddresses": null, 
      "IPAddress": "172.17.0.8", 
        "IPAddress": "172.17.0.8", 

io non so perché il PI era diverso, ma io ho provato a collegarmi a http://172.17.0.8:8080 e questo non ha funzionato neanche. http://localhost:8080 anche fallito.

Questo è successo anche quando ho provato a eseguire docker-gunicorn-nginx - tutto è iniziato, ma non riuscivo a connettermi alla macchina.

Cosa dà?

risposta

13

Se andate a leggere attraverso la finestra mobile di Installation on Mac OS X vedrete che su OSX, contenitori Docker non vengono eseguiti sulla macchina host stesso:

In un'installazione Docker su Linux, la vostra macchina fisica è sia il localhost e l'host Docker. In rete, localhost indica il tuo computer. L'host Docker è il computer su cui vengono eseguiti i contenitori.

In una tipica installazione Linux, il client Docker, il daemon Docker e qualsiasi contenitore vengono eseguiti direttamente sul localhost. Ciò significa che è possibile indirizzare le porte su un contenitore Docker utilizzando l'indirizzamento localhost standard come localhost: 8000 o 0.0.0.0:8376.

[...]

In un'installazione OS X, il demone finestra mobile è in esecuzione all'interno di una macchina virtuale Linux chiamato default. L'impostazione predefinita è una VM Linux leggera creata appositamente per eseguire il daemon Docker su Mac OS X. La VM funziona completamente da RAM, è un piccolo ~ 24 MB di download e si avvia in circa 5 secondi.

In OS X, l'indirizzo host Docker è l'indirizzo della VM Linux. Quando si avvia la VM con la finestra mobile, viene assegnato un indirizzo IP. Quando si avvia un container, le porte su un container si associano alle porte sulla VM. Per vedere questo in pratica, lavorare attraverso gli esercizi in questa pagina.

In effetti, l'apertura di un nuovo Quickstart Terminal Portuale, vedo:

docker is configured to use the default machine with IP 192.168.99.100 

E, apertura http://192.168.99.100:8080 mi porta a Shipyard. Successo!

3

Si può provare ed eseguire il seguente comando:

docker-machine ip default 

tornerà qualche cosa come:

192.168.99.100 

Per ottenere il numero di porta:

docker ps 

uscita Esempio (scorrere verso destra per vedere la mappatura delle porte):

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS     NAMES 
113346425f20  springio/spring1 "sh -c 'java $JAVA_OP" 34 minutes ago  Up 34 minutes  0.0.0.0:8080->8080/tcp pensive_kirch 

Per verificare fare se si sta lavorando:

curl 192.168.99.100:8080

Problemi correlati