Use lang en-US for samples

This commit is contained in:
nemunaire 2017-10-17 08:29:07 +02:00
parent f2f93440a7
commit 13dadd8c59
33 changed files with 318 additions and 0 deletions

View file

@ -10,12 +10,14 @@ de commits. Docker dispose d'un mécanisme permettant d'automatiser la
construction de nouvelles images. Vous pouvez arriver au même résultat que ce
que l'on a réussi à faire précédemment en utilisant le `Dockerfile` suivant :
<div lang="en-US">
```
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y nano
```
</div>
La syntaxe d'un `Dockerfile` est simple, le premier mot de chaque ligne est
l'intitulé d'une instruction (que l'on écrit généralement en majuscule), elle
@ -29,16 +31,20 @@ Pour lancer la construction de la nouvelle image, créer un nouveau dossier ne
contenant que votre fichier `Dockerfile`, placez-vous dedans, puis utilisez la
commande `build` :
<div lang="en-US">
```
docker image build --tag=my_editor .
```
</div>
Une fois la construction de l'image terminée, vous pouvez la lancer et
constater l'existence de notre éditeur favori :
<div lang="en-US">
```
docker container run -it my_editor /bin/bash
```
</div>
## `RUN` dans le `Dockerfile`
@ -48,11 +54,13 @@ correspondra à une nouvelle couche de notre image.
Cela signifie que l'exemple suivant **ne fonctionne pas** :
<div lang="en-US">
```
COPY db.sql /db.sql
RUN service mysqld start
RUN mysql -u root -p toor virli < /db.sql
```
</div>
Cet exemple ne fonctionne pas car le serveur MySQL qui est lancé dans le
premier `RUN`, n'est plus lancé au moment du deuxième `RUN`. En effet, chaque
@ -60,10 +68,12 @@ commande du `Dockerfile` a pour but de modifier le système de fichiers.
Pour avoir le résultat escompté, il faut exécuter les commandes ensemble :
<div lang="en-US">
```
COPY db.sql /db.sql
RUN service mysqld start && mysql -u root -p toor virli < /db.sql
```
</div>
Après le `RUN`, MySQL sera de nouveau arrêté, si on veut l'utiliser dans le
conteneur, il ne faudra pas oublier de lancer le processus.
@ -73,6 +83,7 @@ conteneur, il ne faudra pas oublier de lancer le processus.
Construisons maintenant un conteneur avec un serveur web :
<div lang="en-US">
```
FROM my_editor
@ -81,6 +92,7 @@ RUN apt-get install -y nginx
EXPOSE 80
```
</div>
L'instruction `EXPOSE` sera traitée plus tard par le client Docker (équivalent
à l'argument `--expose`). Il s'agit de préciser les ports sur lesquels votre
@ -89,11 +101,13 @@ image écoute.
En utilisant l'option `-P` du `run`, vous allez pouvoir assigner une
redirection de port aléatoire sur la machine hôte vers votre conteneur :
<div lang="en-US">
```
docker image build --tag=my_webserver .
docker container run -it -P my_webserver /bin/bash
service nginx start
```
</div>
Dans un autre terminal, lancer un `docker ps` et consulter la colonne *PORTS*
pour connaître le port choisi par Docker pour effectuer la redirection.
@ -109,14 +123,18 @@ Rendez-vous ensuite dans votre navigateur sur <http://localhost:49153/>.
Vous pouvez placer dans un `Dockerfile` une instruction `CMD` qui sera exécutée
si aucune commande n'est passée lors du `run`, par exemple :
<div lang="en-US">
```
CMD nginx -g "daemon off;"
```
</div>
<div lang="en-US">
```
docker image build --tag=my_nginx .
docker container run -d -P my_nginx
```
</div>
L'option `-d` passée au `run` lance le conteneur en tâche de fond. Si vous
constatez via un `docker container ls` que le conteneur s'arrête directement,