Tutto quello che ho potuto trovare è un'immagine Docker ufficiale per Ubuntu Desktop su Docker Hub. Non ce n'è uno per Ubuntu Server?
Ciò significa che dovrei creare la mia immagine di base usandoscratch
?
Tutto quello che ho potuto trovare è un'immagine Docker ufficiale per Ubuntu Desktop su Docker Hub. Non ce n'è uno per Ubuntu Server?
Ciò significa che dovrei creare la mia immagine di base usandoscratch
?
Risposte:
Tutto quello che ho potuto trovare è un'immagine Docker ufficiale per Ubuntu Desktop su Docker Hub.
Da nessuna parte quella pagina dice che si tratta di un'immagine desktop di Ubuntu . Comunque, ciò non avrebbe senso perché (in genere) non si esegue un ambiente desktop in un contenitore Docker.
Puoi provarlo, esegui prima bash nel contenitore Ubuntu:
docker run -it ubuntu /bin/bash
-i
,--interactive
Tenere aperto STDIN anche se non collegato
-t
,--tty
Assegna uno pseudo-TTY
Quindi eseguire il comando seguente per verificare se ubuntu-desktop
è installato:
dpkg -l ubuntu-desktop
La domanda riguardava Ubuntu Server, ma tutte le risposte e le discussioni riguardavano Ubuntu Desktop. Quindi risponderò ad entrambi, ma mi rivolgo prima a Ubuntu Desktop. Infine, (e probabilmente non è raccomandato per un contenitore effimero , e la maggior parte dei contenitori dovrebbe essere effimera secondo le migliori pratiche di Docker , ma ehi, ci sono eccezioni.) È possibile installare Ubuntu Desktop e Ubuntu Server su un contenitore ed eseguirlo.
NOTA: è possibile aggiungere il--rm
flag per impedire il rigonfiamento dello spazio di archiviazione dell'host eliminando automaticamente i contenitori dopo l'esecuzione, se si sta solo sperimentando con essi.
docker run --rm -it ubuntu
Questo è un contenitore abbastanza grande! ~ 1,5 GB
Se corri:
docker run -it ubuntu
Quindi, nel contenitore:
> apt-get update && apt-get install -y ubuntu-desktop
Scaricherai efficacemente il desktop Ubuntu
È possibile creare un file Docker:
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-desktop
Quindi costruiscilo:
docker build -t ubuntu-desktop .
Ed eseguilo:
docker run -it ubuntu-desktop
docker run -it ubuntu
Dal terminal container:
apt-get update && apt-get install -y ubuntu-server
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server
Costruiscilo:
docker build -t ubuntu-server .
Eseguirlo:
docker run -it ubuntu-server
docker run -it ubuntu
Il terminale del contenitore:
apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
Costruiscilo:
docker build -t ubuntu-server-desktop .
Eseguirlo:
docker run -it ubuntu-server-desktop.
Iniziano con i file cloudimg come base.
Se guardi i manifest per le immagini cloud qui sembra che sia l'immagine base di distribuzione del server.
IMHO, il desktop Ubuntu è principalmente solo ubuntu server
+ desktop environment
. L'OP ufficiale del repository indicato non contiene immagini con l'ambiente desktop, quindi è necessario trattarle come versioni del server.
Per minimalista, attualmente uso gcr.io/google_containers/ubuntu-slim:0.14
per il mio progetto personale. È un'immagine Ubuntu minima ma perfettamente funzionante con solo 1/3 delle dimensioni di quelle immagini ufficiali.
Per chiarire ulteriormente la risposta ghanbari. Ecco l'output dei comandi. Sicuramente nessun pacchetto per quanto riguarda il desktop.
> docker pull ubuntu:latest
> docker run -t -i ubuntu /bin/bash
> dpkg -l ubuntu-desktop
> dpkg-query: no packages found matching ubuntu-desktop
apt-get update
.
Per eseguire una versione specifica di Ubuntu tramite Docker, eseguire questo comando:
docker run -it ubuntu:16.04 /bin/bash
16.04 è il numero di versione. Se si salta il numero di versione, l'immagine più recente verrà prelevata dal repository. Non è necessario ottenere l'intero Dockerfile e crearlo da zero.