Ho appena iniziato a imparare a utilizzare il docker. Il mio scopo originale è quello di build un'image di ambiente di sviluppo basata su ubuntu, in modo che possa avere un ambiente di sviluppo coerente quando cambio spesso tra macchine diverse: Windows PC aziendali, laptop aziendali, macbook a casa …
Ora ho costruito un'image da ubuntu. Ma quello che mi sorprende è che il contenitore non può essere usato come macchina in esecuzione. Quando docker run xxxx
, il contenitore esce subito perché non ho eseguito alcun servizio in esso.
Ho scoperto che posso usare il docker run -it xxx
per entrare in /bin/bash
sulla macchina e fare qualcosa. Ma il container esce immediatamente a digitare exit
in bash.
Come posso usare un'image ubuntu come un server in esecuzione a lungo, e posso ssh in esso da qualunque macchina sto usando corrente?
Verifica il progetto LXD da canonico, che sta tentando di build una funzionalità completa di OS utilizzando i contenitori:
http://www.ubuntu.com/cloud/lxd
D'altra parte, Docker è progettato principalmente per il pacchetto e la distribuzione di applicazioni.
I Dockers possono essere totalmente un process lungo, è stato progettato per l'esecuzione di server. Il problema che stai vedendo è solo perché non hai dato un process nel tuo Dockerfile per eseguire. Se non lo fai come se avessi visto funziona come un servizio.
Provate a fare più delle lezioni di docker, basta avere una CMD alla fine per mantenerlo in esecuzione, come la maggior parte dei container usa.