Académique Documents
Professionnel Documents
Culture Documents
TP Docker
TP Docker
Benoît Benedetti
Octobre 2015
1 Premier conteneur
Le but de cette partie est de vous faire découvrir le client Docker, et de vous
familiariser avec les commandes du client, les images, les conteneurs, savoir lire
la sortie des commandes et débugger leur utilisation Dans la suite, nous mettrons
ces connaissances à profit pour passer à une utilisation pratique de Docker
Lorsque que je vous indique la commande complète, prenez le temps de lire sa
page de manuel, et de comprendre son fonctionnement.
Lorsque la commande à taper n’est pas exactement détaillée, écrivez-là dans ce
document.
Répondez au mieux dans ce document, aux différents questions : vous enverrez
ce document rempli, à l’adresse benoit.benedetti@unice.fr, avec comme sujet de
message TP1 Docker : Nom Prénom
1.1 Interactif
docker ps
docker ps -a
docker ps -q
docker ps -qa
docker ps -ql
1
Expliquez leur résultat. Quels sont les noms, identifiants, etats des différents
conteneurs ?
1.2 Images
2
Exécutez ensuite la commande suivante dans votre conteneur :
docker top
docker logs
docker logs -f
exec
attach
3
2.1.1.2 Commande diff
Utilisez la commande docker diff sur votre conteneur mynginx. Expliquez son
résultat.
A quoi correspond la sortie de cette commande ? Quel est le tag par défaut
de l’image générée ? Exécutez la commande docker images pour vous aider à
répondre aux 2 question précédentes.
Exécutez la commande tag suivante pour rajouter un tag à une image :
4
Lisez la page d’aide la commande docker inspect.
Utilisez la commande suivante sur le conteneur précédent :
ping
Quelle différence par raport au run d’avant ? utilisez les commandes inspect,ps,
et port pour répondre à cette question.
2.1.1.4.2 Utilisez docker port pour afficher tous les ports redirigés,
ou seulement le port 80
5
2.2 Volumes
mkdir mynginx
cd mynginx
Dans cette partie, nous allons recréer notre image nginx, mais en automatisant
les commandes depuis un Dockerfile.
2.3.1 Base
FROM ubuntu
6
2.3.2 Cache
2.3.3 Ports
FROM ubuntu
EXPOSE 80 443
2.3.4 CMD
FROM ubuntu
EXPOSE 80 443
7
docker build -t mynginximg .
docker run -P -v $(pwd) :/usr/share/nginx/html -d mynginximg
docker run -it mynginximg nginx -h
docker run -it mynginximg echo Hello
2.3.5 ENTRYPOINT
FROM ubuntu
EXPOSE 80 443
FROM ubuntu
EXPOSE 80 443
ENTRYPOINT ["nginx"]
CMD ["-g", "daemon off ;"]
8
docker build -t mynginximg .
docker run -P -v $(pwd) :/usr/share/nginx/html -d mynginximg
docker run -it mynginximg -h
docker run -it mynginximg echo hello
docker run --entrypoint=echo -it mynginximg hello
3.1 Hub
9
4 Pour finir
S’il vous reste du temps, essayez d’améliorer votre Dockerfile, par exemple
en évitant d’inclure les logs nginx dans votre image/conteneur (étudiez
https ://github.com/nginxinc/docker-nginx/blob/master/Dockerfile).
10