Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
elearning:workbooks:docker1:drf02 [2020/08/11 08:45] – admin | elearning:workbooks:docker1:drf02 [2021/12/29 10:32] (Version actuelle) – admin |
---|
~~PDF:LANDSCAPE~~ | ~~PDF:LANDSCAPE~~ |
| |
Version : **2020.01** | Version : **2022.01** |
| |
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ |
wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ | wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ |
export GNUPGHOME="$(mktemp -d)"; \ | export GNUPGHOME="$(mktemp -d)"; \ |
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ | gpg --batch --keyserver pgp.mit.edu --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ |
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ | # gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ |
command -v gpgconf && gpgconf --kill all || :; \ | command -v gpgconf && gpgconf --kill all || :; \ |
rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ | rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ |
export GNUPGHOME="$(mktemp -d)"; \ | export GNUPGHOME="$(mktemp -d)"; \ |
for key in $GPG_KEYS; do \ | for key in $GPG_KEYS; do \ |
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ | gpg --batch --keyserver pgp.mit.edu --recv-keys "$key"; \ |
done; \ | done; \ |
gpg --batch --export $GPG_KEYS > /etc/apt/trusted.gpg.d/mongodb.gpg; \ | gpg --batch --export $GPG_KEYS > /etc/apt/trusted.gpg.d/mongodb.gpg; \ |
Cette commande permet de récupérer les fichiers dans le contexte et de les copier dans l'image. | Cette commande permet de récupérer les fichiers dans le contexte et de les copier dans l'image. |
| |
Rappelez-vous de l'avertissement précédent : **Attention** : tous les fichiers dans le contexte sont inclus dans l'image finale, même ceux qui sont inutiles. | **Attention** : tous les fichiers dans le contexte sont inclus dans l'image finale, même ceux qui sont inutiles. |
| |
Il est possible d'exclure des fichiers présents dans le contexte en les mettant dans un fichier appelé **.dockerignore** placé dans le contexte. | Il est possible d'exclure des fichiers présents dans le contexte en les mettant dans un fichier appelé **.dockerignore** placé dans le contexte. |
si la valeur du paramètre passé à entrypoint.sh est **mongod**, le script affecte l'utilisateur mongodb aux répertoires /data/configdb et /data/db puis lance mongo sous l'utilisateur mongodb avec des droits réduits ( gosu ). | si la valeur du paramètre passé à entrypoint.sh est **mongod**, le script affecte l'utilisateur mongodb aux répertoires /data/configdb et /data/db puis lance mongo sous l'utilisateur mongodb avec des droits réduits ( gosu ). |
| |
Ce fichier finit par "$@" qui indique que si aucune condition n'ait été remplie, la commande est exécutée avec la valeur passée en argument : | Ce fichier finit par "$@" qui indique que si aucune condition n'ait été remplie, la commande est exécutée avec la valeur passée en argument. |
| |
<code> | |
root@debian9:~/mongodb# docker rm -fv mongo2 | |
mongo2 | |
root@debian9:~/mongodb# docker run -it --name mongo2 i2tch/mongodb2 /bin/bash | |
root@a2b3a0f53f62:/# pwd | |
/ | |
root@a2b3a0f53f62:/# exit | |
exit | |
root@debian9:~/mongodb# | |
</code> | |
| |
<WRAP center round important> | <WRAP center round important> |
**Important** - Notez que la compilation d'une image se fait à l'intérieur d'un **contexte**. Le **contexte** est le répertoire de build. **Attention** : tous les fichiers dans le contexte sont inclus dans l'image finale, même ceux qui sont inutiles. Dernièrement, notez qu'il peut y avoir plusieurs ENTRYPOINT dans le fichier Dockerfile mais uniquement le dernier est pris en compte. | **Important** - Notez que la compilation d'une image se fait à l'intérieur d'un **contexte**. Le **contexte** est le répertoire de build. Dernièrement, notez qu'il peut y avoir plusieurs ENTRYPOINT dans le fichier Dockerfile mais uniquement le dernier est pris en compte. |
</WRAP> | </WRAP> |
| |
</file> | </file> |
| |
Cette commande permet d'exposer un port à l'extérieur du conteneur : | Cette commande permet d'exposer un port à l'extérieur du conteneur. |
| |
<code> | |
root@debian9:~/mongodb# docker rm -fv mongo2 | |
mongo2 | |
root@debian9:~/mongodb# docker run -d --name mongo2 i2tch/mongodb2 | |
b3380889eb750298710e956f284f291b786f4382465d247ae58f9b73d2d276ca | |
root@debian9:~/mongodb# docker ps -a | |
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |
b3380889eb75 i2tch/mongodb2 "docker-entrypoint.s…" 15 seconds ago Up 15 seconds 27017/tcp mongo2 | |
bf72bd700870 i2tch/mongodb1 "/bin/bash" 19 minutes ago Exited (0) 19 minutes ago mongo1 | |
d2ddb4f8ca8a i2tch/mongodb "bash" 31 minutes ago Up 29 minutes mongo | |
c080793965de nginx "nginx -g 'daemon of…" About an hour ago Up About an hour 0.0.0.0:81->80/tcp suspicious_sanderson | |
4f157e179134 nginx "nginx -g 'daemon of…" 4 hours ago Exited (0) 4 hours ago stoic_roentgen | |
04b5ab87539a ubuntu "/bin/bash" 4 hours ago Exited (0) 4 hours ago i2tch | |
</code> | |
| |
====1.9 - CMD==== | ====1.9 - CMD==== |
| |
<code> | <code> |
| root@debian9:~/mongodb# docker rm mongo1 |
| mongo1 |
root@debian9:~/mongodb# chmod +x docker-entrypoint.sh | root@debian9:~/mongodb# chmod +x docker-entrypoint.sh |
root@debian9:~/mongodb# docker build . | root@debian9:~/mongodb# docker build . |
| |
----- | ----- |
<html> | |
<div align="center"> | Copyright © 2022 Hugh Norris. |
Copyright © 2020 Hugh NORRIS | |
</div> | |
</html> | |