2015-05-13 20 views
24

È possibile gestire le macchine mobili create da una workstation di sviluppo utilizzando i comandi della finestra mobile, da un'altra workstation. Non sto cercando una soluzione che coinvolga lo sciame docker, ma solo la macchina docker.Gestione di macchine docker remote da più computer di sviluppo

Dalla mia comprensione, quando la macchina docker crea la macchina su un ambiente remoto come AWS EC2, crea chiavi e certificati che vengono poi utilizzati per la comunicazione basata su TLS per l'avanzamento della macchina. Quindi, in teoria, se copio quelle chiavi e certs su un altro sviluppatore, dovrei essere in grado di collegarmi a quella macchina docker remota.

Tuttavia, vorrei sapere se questo è il metodo previsto per realizzare ciò che sto cercando di fare. IMO questo sarà uno scenario che la maggior parte della community di docker potrebbe affrontare, poiché più membri del team dovranno condividere e gestire la stessa macchina mobile docker remota.

Qualsiasi consiglio in merito sarebbe molto apprezzato.

+0

Qualsiasi motivo per cui è necessario condividere l'host di docker per lo sviluppo? È più facile che ogni sviluppatore abbia il proprio host vm per lo sviluppo, basta scegliere i tipi di istanza più economici e assicurarsi di distruggere/fermare le istanze se non usate – number5

+0

Grazie per la risposta. Intendevo uno scenario che andava oltre la fase di sviluppo del prodotto, ma le implementazioni alla produzione. Una volta creata una macchina docker remota da una workstation, come possiamo gestire la macchina docker da remoto da un'altra workstation/macchina di generazione? – frameworksnow

+0

sei riuscito a trovare un modo per farlo funzionare? – dcohenb

risposta

22

Utilizzando la comunicazione basata su TLS, la finestra mobile utilizza la verifica SSL bidirezionale. In altre parole, non solo il client verifica il server ma anche il contrario. Creando una macchina docker con TLS abilitato, si sta diventando la propria Autorità di certificazione (CA), e quindi si è responsabili della gestione dei certificati SSL. Docker fa questo dietro le quinte, ma credo che sia possibile configurare manualmente la CA autofirmata e la Docker di repoint per utilizzare i certificati e le chiavi da voi configurate. Pertanto, anziché condividere un singolo certificato e una chiave per tutte le workstation degli sviluppatori, emettere un certificato univoco e una chiave privata per ogni sviluppatore firmato dalla chiave privata CA. L'unica cosa che deve essere condivisa da tutti è il certificato CA, che è pubblico.

Il vantaggio di questo è che è possibile revocare un certificato dire una volta che uno sviluppatore lascia, anche se questo è difficile con certificati autofirmati, e consente la responsabilità dove è possibile controllare chi ha fatto cosa dai registri.

Docker TLS setup.

Becoming your own CA tutorial and certificate revocation

+0

Ahh sì :) Questa è una grande informazione per chiunque sia preoccupato di gestire host Docker remoti nelle versioni più recenti del Docker Engine! TL; DR; SSL protetto :) –

+0

Grazie a @Daniel per la spiegazione. Questo e 'esattamente quello che stavo cercando. Sono comunque sorpreso che la finestra mobile non includa un sottocomando per la macchina docker per ottenere lo stesso risultato. – frameworksnow

+5

La domanda precedente di @ number5 mi chiede se la macchina docker sia il modo sbagliato di distribuire? Ma mi sembra che dovrei essere in grado di copiare i certificati da ~ ~/.docker/machine/certs' e '~/.docker/machine/machines/...' su un'altra macchina, giusto? Mi sto perdendo qualcosa che renderebbe questa cosa insicura?Evito di copiare 'default', dato che contiene un'intera ISO boot2docker. –

2

C'è uno strumento esterno per importare/esportare docker-machines: machine-share.

machine-export <machine-name> 
>> exported to <machine-name>.zip 
machine-import <machine-name>.zip 
>> imported 

Per inciso, credo la soluzione di Daniel è superiore, ma richiede un investimento significativo in strumenti/flussi di lavoro. machine-export dovrebbe essere sufficiente nel 95% dei casi.

Problemi correlati