Tout ce que j'ai pu trouver est une image Docker officielle pour Ubuntu Desktop sur Docker Hub. N'y en a-t-il pas un pour Ubuntu Server?
Est-ce à dire que je devrais créer ma propre image de base en utilisantscratch
?
Tout ce que j'ai pu trouver est une image Docker officielle pour Ubuntu Desktop sur Docker Hub. N'y en a-t-il pas un pour Ubuntu Server?
Est-ce à dire que je devrais créer ma propre image de base en utilisantscratch
?
Réponses:
Tout ce que j'ai pu trouver est une image Docker officielle pour Ubuntu Desktop sur Docker Hub.
Nulle part cette page ne dit que c'est une image Ubuntu Desktop . Quoi qu'il en soit, cela n'aurait aucun sens car vous (généralement) n'exécutez pas un environnement de bureau dans un conteneur Docker.
Vous pouvez le tester, exécutez d'abord bash dans le conteneur Ubuntu en:
docker run -it ubuntu /bin/bash
-i
,--interactive
Gardez STDIN ouvert même s'il n'est pas attaché
-t
,--tty
Attribuer un pseudo-ATS
Exécutez ensuite la commande suivante pour vérifier si elle ubuntu-desktop
est installée:
dpkg -l ubuntu-desktop
La question portait sur Ubuntu Server, mais toutes les réponses et discussions portaient sur Ubuntu Desktop. Je vais donc répondre aux deux, mais abordez d'abord Ubuntu Desktop. Enfin, (et ce n'est probablement pas recommandé pour un conteneur éphémère , et la plupart des conteneurs devraient être éphémères selon les meilleures pratiques de Docker , mais bon, il y a des exceptions.) Vous pouvez installer Ubuntu Desktop et Ubuntu Server sur un conteneur et l'exécuter.
REMARQUE: vous pouvez ajouter l'--rm
indicateur pour empêcher le stockage de votre hôte de gonfler en supprimant automatiquement les conteneurs après leur exécution, si vous ne faites que les expérimenter.
docker run --rm -it ubuntu
Ceci est un assez gros conteneur! ~ 1,5 Go
Si vous exécutez:
docker run -it ubuntu
Ensuite, dans le conteneur:
> apt-get update && apt-get install -y ubuntu-desktop
Vous téléchargerez efficacement le bureau Ubuntu
Un Dockerfile pourrait être créé:
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-desktop
Ensuite, construisez-le:
docker build -t ubuntu-desktop .
Et lancez-le:
docker run -it ubuntu-desktop
docker run -it ubuntu
Depuis le terminal à conteneurs:
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
Construit le:
docker build -t ubuntu-server .
Exécuter:
docker run -it ubuntu-server
docker run -it ubuntu
Le terminal du conteneur:
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
Construit le:
docker build -t ubuntu-server-desktop .
Exécuter:
docker run -it ubuntu-server-desktop.
Ils commencent avec les fichiers cloudimg comme base.
Si vous regardez les manifestes pour les images cloud ici, il semble que ce soit l'image de base du déploiement du serveur.
À mon humble avis, le bureau Ubuntu est principalement juste ubuntu server
+ desktop environment
. Le repo OP officiel indiqué ne contient aucune image avec l'environnement de bureau, vous devez donc simplement les traiter comme des versions de serveur.
Pour minimaliste, j'utilise actuellement gcr.io/google_containers/ubuntu-slim:0.14
pour mon projet personnel. C'est une image ubuntu minimale mais pleinement fonctionnelle avec seulement 1/3 de la taille de ces images officielles.
Pour clarifier davantage la réponse de Ghanbari. Voici la sortie des commandes. Certainement aucun paquet concernant le bureau.
> 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
.
Pour exécuter une version spécifique d'Ubuntu à l'aide de Docker, exécutez cette commande:
docker run -it ubuntu:16.04 /bin/bash
16.04 est le numéro de version. Si vous ignorez le numéro de version, la dernière image sera sélectionnée dans le référentiel. Vous n'avez pas besoin d'obtenir l'intégralité du Dockerfile et de le créer à partir de zéro.