Vous êtes sur la page 1sur 17

Sup Galilée

-
TP 2 Docker

Notation :
- TP à réaliser en groupe de 2 à 3 personnes MAX
- Des checkpoints sont inclus dans le TP à faire valider par le formateur
o Les réponses au différentes questions seront attendues
- Aucun rapport n’est exigé mais il est conseillé d’en réaliser un

msouvatdy@ilki.fr
Table des matières
1. Dockerfile ........................................................................................................................... 3
1.1. Votre premier Dockerfile............................................................................................. 3
1.2. Construction d’une image depuis le Dockerfile .......................................................... 4
1.3. Lancer un conteneur à partie de la nouvelle image ..................................................... 4
1.4. L’instruction CMD ...................................................................................................... 6
1.5. L’instruction ENTRYPOINT ...................................................................................... 7
1.6. L’instruction WORKDIR ............................................................................................ 8
1.7. L’instruction ENV ....................................................................................................... 9
1.8. L’instruction USER ................................................................................................... 10
1.9. L’instruction ADD ..................................................................................................... 11
1.10. L’instruction COPY ............................................................................................... 12
1.11. L’instruction LABEL ............................................................................................. 13
1.12. L’instruction ONBUILD ........................................................................................ 14
1.13. Les volumes docker ............................................................................................... 16
2. Déposer une image sur Docker Hub ................................................................................ 17
# Version: 0.1
FROM rg.fr-par.scw.cloud/ilkilabs/ubuntu:18.04
LABEL maintainer="ilkilab"
RUN apt-get update && apt-get install -y nginx
RUN echo 'Hi, I am in your container' >/var/www/html/index.html
EXPOSE 80
$ docker build -t="ur2p0/static_web" .

$ docker run -d -p 80 --name static_web ur2p0/static_web:v0.1 nginx -g "daemon off;"

$ docker port 9c718b925346


$ docker port 9c718b925346 80
$ docker port static_web

$ curl 0.0.0.0:32777
$ docker run -d -p 127.0.0.1:80:80 --name static_web ur2p0/static_web:v0.1 nginx -g "daemon
off;"

$ docker port static_web

$ curl 127.0.0.1:80

$ docker rm -f static_web

$ docker run -d -p 127.0.0.1::80 --name static_web ur2p0/static_web:v0.1 nginx -g "daemon


off;"

$ docker port static_web

$ curl 127.0.0.1:32769
$ docker run -i -t jamtur01/static_web /bin/bash

# Version: 0.2
FROM rg.fr-par.scw.cloud/ilkilabs/ubuntu:18.04
LABEL maintainer="ilkilab"
RUN apt-get update && apt-get install -y nginx
RUN echo 'Hi, I am in your container' >/var/www/html/index.html
CMD ["/bin/bash"]
EXPOSE 80

CMD ["/bin/bash", "-l"]

$ docker run -t -i mon_image /bin/ps


1) A quoi sert l’instruction ENTRYPOINT ?
2) Créer un Dockerfile avec le contenu suivant :
# Version: 0.3
FROM ur2p0/static_web:v0.2
ENTRYPOINT ["/bin/echo"]

ENTRYPOINT ["/bin/ps"]
CMD ["-aux"]
2)

$ vi Dockerfile
# Version: 0.1
FROM rg.fr-par.scw.cloud/ilkilabs/ubuntu:14.04
LABEL maintainer="ilkilab"
WORKDIR /etc
RUN mkdir new_folder
WORKDIR new_folder/
RUN touch hellotomynewfolder
WORKDIR toto/
# Version: 0.2
FROM ur2p0/ubu_test:v0.1
LABEL maintainer="ilkilab"
ENV TARGET_DIR /etc/new_folder
WORKDIR $TARGET_DIR
RUN mkdir new_folder2
2)

FROM ur2p0/ubu_test:v0.2
USER ilki
ENV TARGET_DIR /home/ilki
WORKDIR $TARGET_DIR
RUN touch a_third_file
FROM ur2p0/ubu_test:v0.3
ADD http://wordpress.org/latest.zip .
$ mkdir test_copy
$ cd test_copy
$ touch test_cp_file
$ cd ..

#Version 0.4
FROM ur2p0/ubu_test:v0.3
RUN mkdir copied_folder
COPY test_copy/ /home/ilki/copied_folder

CHECKPOINT N°3
$ vi Dockerfile
#Version 0.5
FROM ur2p0/ubu_test:v0.3
LABEL location="NANTES" type="ubuntu-server" role="web-server"

$ docker build -t="ur2p0/ubu_test:v0.5" .

$ docker run -t -i ur2p0/ubu_test:v0.5

$ docker ps

$ docker inspect cranky_noether


$ docker inspect --format='{{.Config.Labels}}' cranky_noether
map[location:NANTES role:web-server type:ubuntu-server]
$ cd ..
$ mkdir apache2
$ cd apache2
$ mkdir v1
$ cd v1
$ touch Dockerfile
$ vi Dockerfile

#Version 0.1
FROM rg.fr-par.scw.cloud/ilkilabs/ubuntu:14.04
LABEL maintainer="ilkilab"
RUN apt-get update && apt-get install -y apache2
LABEL location="NANTES" type="ubuntu-server" rôle="web-server"
ONBUILD RUN apt-get update

$ docker build -t="ur2p0/apache2" .


$ cd ..
$ mkdir v2
$ cd v2
$ touch Dockerfile
$ vi Dockerfile
#Version 0.1
FROM ur2p0/apache2
ENV APPLICATION_NAME webapp

$ docker build -t="ur2p0/webapp" .


Step 1/3 : FROM ur2p0/apache2
# Executing 1 build trigger...
Step 1/1 : RUN apt-get update
---> Running in 94d8b2435a68
$ mkdir /home/vagrant/partage

$ touch /home/vagrant/partage/monfichier_partage.txt

$ docker run -v /home/vagrant/partage:/opt -it ur2p0/ubu_test:v0.2

# ls /opt

3)

$ docker run --mount source=monpremiervolume,target=/opt -it ur2p0/ubu_test:v0.2


$ docker login
$ docker push ur2p0/webapp

Vous aimerez peut-être aussi