Bonjour
Je débute actuellement avec Docker (en gros je cherche à comprendre comment cela fonctionne et donc comment je peux m'en servir)
J'ai crée ma première image avec ce docker file
et j'ai lancer la génération de l'image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 FROM debian # install apache and site RUN apt-get update && apt-get install -y \ apache2 \ && rm -rf /var/lib/apt/lists/* # create directories if necessary RUN if ! [ -d /var/run/apache2 ]; then mkdir /var/run/apache2;fi RUN if ! [ -d /var/log/apache2 ]; then mkdir /var/log/apache2;fi RUN if ! [ -d /var/lock/apache2 ]; then mkdir /var/lock/apache2;fi # add variable system ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 ENV APACHE_LOCK_DIR /var/lock/apache2 ENV APACHE_PID_FILE /var/run/apache2.pid # add module apache RUN a2enmod proxy proxy_http RUN a2ensite default-ssl RUN a2enmod ssl # minimal param RUN rm /etc/apache2/sites-enabled/* RUN echo "<VirtualHost *:80>" > /etc/apache2/sites-enabled/default.conf RUN echo " DocumentRoot /var/www" >> /etc/apache2/sites-enabled/default.conf RUN echo " <IfModule dir_module>" >> /etc/apache2/sites-enabled/default.conf RUN echo " DirectoryIndex index.html" >> /etc/apache2/sites-enabled/default.conf RUN echo " </IfModule>" >> /etc/apache2/sites-enabled/default.conf RUN echo "</VirtualHost>" >> /etc/apache2/sites-enabled/default.conf RUN rm -r /var/www/html RUN echo "<html><body>step1</body></html>" > /var/www/index.html # expose EXPOSE 80 EXPOSE 443 # volume VOLUME /var/www VOLUME /etc/apache2/sites-enabled # cmd CMD ["/usr/sbin/apache2","-D","FOREGROUND"]
si je lance un container à partir de cette image, que je me connecte en intéractif sur le container je peux voir ce que contient le fichier /var/www/index.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 docker build -t step1 - < step1.dockerfile
la je suis plutôt content
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 root@debian:~# docker run -d --name step1 step1 f46e9b20790d88c2abaf13ab01fac2da428dee4e9ec68fa3175b2845a27b8f22 root@debian:~# docker ps --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f46e9b20790d step1:latest "/usr/sbin/apache2 - 11 seconds ago Up 10 seconds 80/tcp, 443/tcp step1 e76a731c732b dockerui/dockerui:latest "/dockerui" 23 hours ago Up 5 hours 0.0.0.0:9000->9000/tcp dockerui root@debian:~# docker exec -it f46e9b20790d bash root@f46e9b20790d:/# cat /var/www/index.html <html><body>step1</body></html> root@f46e9b20790d:/# exit exit
je souhaite créer une image step2 (je sais je suis trop fort sur les noms) qui part de step1 pour modifier uniquement le fichier index.html.
mon dockerfile est le suivant
je build cette image sans soucis, mais quand je lance un container à partir de l(image step2 ... le résultat de la modification du fichier index.html n'est pas là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 FROM step1 RUN echo "<html><body>step2</body></html>" > /var/www/index.html
et là je ne comprends pas ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 root@debian:~# docker run -d --name step2 step2 b27ec5c825a0c7a21af9f4e263c6787ff1336ac54a5c220973fefb1577c5d014 root@debian:~# docker ps --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b27ec5c825a0 step2:latest "/usr/sbin/apache2 - 7 seconds ago Up 6 seconds 80/tcp, 443/tcp step2 f46e9b20790d step1:latest "/usr/sbin/apache2 - 11 seconds ago Up 10 seconds 80/tcp, 443/tcp step1 e76a731c732b dockerui/dockerui:latest "/dockerui" 23 hours ago Up 5 hours 0.0.0.0:9000->9000/tcp dockerui root@debian:~# docker exec -it b27ec5c825a0 bash root@b27ec5c825a0:/# cat /var/www/index.html <html><body>step1</body></html> root@b27ec5c825a0:/# exit exit
si je regarde l'history de step2 ... je retrouve bien toutes les étapes
je ne comprends donc pas pourquoi cela ne fonctionne pas ... quelqu'un pourrait m'aider à expliciter le fonctionnement ... merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 root@debian:~# docker history step2 IMAGE CREATED CREATED BY SIZE dc0fe4e04ce8 9 seconds ago /bin/sh -c echo "<html><body>step2</body></ht 0 B f6247af898c3 28 seconds ago /bin/sh -c #(nop) CMD ["/usr/sbin/apache2" "- 0 B 42063c91344b 28 seconds ago /bin/sh -c #(nop) VOLUME [/etc/apache2/sites- 0 B 3d0c42ed2fda 28 seconds ago /bin/sh -c #(nop) VOLUME [/var/www] 0 B e3dd7dd1d19f 29 seconds ago /bin/sh -c #(nop) EXPOSE 443/tcp 0 B 49b95672822f 29 seconds ago /bin/sh -c #(nop) EXPOSE 80/tcp 0 B 18466547640a 29 seconds ago /bin/sh -c echo "<html><body>step1</body></ht 32 B 1120cd3196a4 2 hours ago /bin/sh -c rm -r /var/www/html 0 B 6e70f415ecfb 2 hours ago /bin/sh -c echo "</VirtualHost>" >> /etc/apac 131 B 8add5bb9ff04 2 hours ago /bin/sh -c echo " </IfModule>" >> /etc/apac 116 B 9365228096b9 2 hours ago /bin/sh -c echo " DirectoryIndex index.h 101 B d9ff201a495f 2 hours ago /bin/sh -c echo " <IfModule dir_module>" >> 69 B c9b9a6348471 2 hours ago /bin/sh -c echo " DocumentRoot /var/www" >> 44 B 782cf15b910a 2 hours ago /bin/sh -c echo "<VirtualHost *:80>" > /etc/a 19 B b056285a2805 2 hours ago /bin/sh -c rm /etc/apache2/sites-enabled/* 0 B 51b3999c8bc5 2 hours ago /bin/sh -c a2enmod ssl 88 B 293eb96de689 2 hours ago /bin/sh -c a2ensite default-ssl 35 B 1a6556962390 2 hours ago /bin/sh -c a2enmod proxy proxy_http 89 B 8c4c45c9defe 2 hours ago /bin/sh -c #(nop) ENV APACHE_PID_FILE=/var/ru 0 B 324de6abdff1 2 hours ago /bin/sh -c #(nop) ENV APACHE_LOCK_DIR=/var/lo 0 B 8b8923b66f72 2 hours ago /bin/sh -c #(nop) ENV APACHE_LOG_DIR=/var/log 0 B af4c51ba46dc 2 hours ago /bin/sh -c #(nop) ENV APACHE_RUN_GROUP=www-da 0 B 3c1551344051 2 hours ago /bin/sh -c #(nop) ENV APACHE_RUN_USER=www-dat 0 B 09fb83c58511 2 hours ago /bin/sh -c if ! [ -d /var/lock/apache2 ]; the 0 B d306813ad255 2 hours ago /bin/sh -c if ! [ -d /var/log/apache2 ]; then 0 B 296dc34fdfed 2 hours ago /bin/sh -c if ! [ -d /var/run/apache2 ]; then 0 B eb6f3acebaee 2 hours ago /bin/sh -c apt-get update && apt-get install 58.63 MB a582cd499e0f 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B d8bd0657b25f 2 weeks ago /bin/sh -c #(nop) ADD file:b5391cb13172fb513d 125.1 MB
Partager