Desidero migrare la mia attuale distribuzione nella finestra mobile, conta su un servizio mongodb, un servizio redis, un server pg e un'applicazione rails, ho già creato un contenitore docker per ciascuno ma ho dubbi quando si tratta di iniziare e collegarli. In fase di sviluppo sto usando la fig ma penso che non sia stata pensata per essere utilizzata in produzione. Per portare il mio deployment a livello di produzione, quale meccanismo dovrei usare per avviare e collegare automaticamente i container? la mia distribuzione utilizza un singolo host di docker che esegue già Ubuntu quindi non posso usare CoreOS.Collegamento di contenitori su sistemi di produzione
risposta
I contenitori Linknig in produzione sono una cosa delicata. Collegherà gli indirizzi IP dei contenitori dipendenti, quindi se hai mai bisogno di riavviare un container o di avviare una sostituzione (come l'aggiornamento della versione di mongodb) l'app delle tue rotaie non funzionerà immediatamente con il nuovo contenitore e il suo nuovo indirizzo IP .
This other answer explains alcune alternative disponibili al collegamento.
Per quanto riguarda l'avvio dei contenitori, è possibile utilizzare qualsiasi strumento di distribuzione per eseguire i comandi docker richiesti (Capistrano può farlo facilmente). Successivamente, la finestra mobile verrà riavviata eseguendo i contenitori dopo un riavvio.
Potrebbe essere necessario un processo di controllo per riavviare i contenitori se muoiono, proprio come si farebbe con uno per una normale app per rotaie.
Servizi come Tutum e Dockerize.it possono semplificare il tutto. Per quanto ne so, Tutum non si distribuirà sui tuoi server. Dockerize.it lo farà, ma è molto approssimativo (disclaimer: io faccio parte del team che lo costruisce).
È possibile convertire la configurazione fig
in file di configurazione systemd
formattati con CoreOS con fig2coreos
. Google App Engine supports CoreOS oppure puoi eseguire CoreOS su AWS o il tuo fornitore cloud preferito. fig2coreos supporta anche la distribuzione su CoreOS in Vagrant per lo sviluppo locale.
CenturyLink (fig2coreos
autori) hanno un esempio del post here:
Questo post mostra come colmare il divario tra costruire applicazioni multi-container complesse utilizzando Fig e distribuzione di tali applicazioni in un sistema CoreOS di produzione.
EDIT: Se sono costretti a un sistema operativo host esistente è possibile utilizzare QEMU
("una macchina emulatore generico e open source e virtualizzatore") per ospitare un'istanza CoreOS. Le istruzioni sono available from the CoreOS team.
Ciao @Andy grazie per la tua risposta, ho aggiornato la mia domanda. Il padrone di casa dove faccio finta di installare Docker corre già Ubuntu e per il momento penso che non posso installare chnage che :(, posso installare systemd su Ubuntu? –
stavo cercando di migrare il mio implementare precedente da usare finestra mobile ora. Il padrone di casa mi riferisco che esegue ubuntu è una VM x64 con 2gb di ram, non ho accesso al server bare metal solo per quella VM, non vedo possibile installare CoreOS al suo interno.Che cosa puoi consigliare in questo caso? –
Quale fornitore di cloud stai usando? In AWS, puoi utilizzare elasticBeanstalk, avere un env beanstalk per finestra mobile. Ciascuno espone un URL che è possibile utilizzare per collegare i servizi insieme. O sei interessato a ridurre al minimo il numero di host? – JRun