Come posso utilizzare il contenitore ubuntu come un server regolare che posso ssh in remoto?

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.