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,

View file

@ -11,9 +11,11 @@ l'ip de notre conteneur Docker dans la table `data_source` :
Petit indice, les requêtes SQL sont les suivantes :
<div lang="en-US">
```
DELETE FROM "data_source";
INSERT INTO "data_source" VALUES(1,1,0,'influxdb','influx','direct','http://${}:8086/','user','pass','metrics',0,'','',0,'null','2015-10-29 09:00:00','2015-10-29 09:05:00');
```
</div>
La base se trouve dans `/var/lib/grafana/grafana.db`.

View file

@ -100,23 +100,27 @@ InfluxDB. Nous allons installer `telegraf` sur notre machine à l'aide de la
Ces quelques lignes devraient suffir à lancer la collecte, à condition que
votre InfluxDB écoute sur le port 8086 local :
<div lang="en-US">
```bash
TELEGRAF_VERSION=1.0.0
wget https://dl.influxdata.com/telegraf/releases/telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
tar xf telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
TELEGRAF_CONFIG_PATH=./telegraf/etc/telegraf/telegraf.conf ./telegraf/usr/bin/telegraf
```
</div>
Rendez-vous ensuite dans [l'interface d'InfluxDB](http://localhost:8083/) pour
voir si la collecte se passe bien.
Dans l'interface sélectionnez la base `telegraf` puis explorez les valeurs :
<div lang="en-US">
```sql
SHOW MEASUREMENTS
SHOW FIELD KEYS
SELECT usage_idle FROM cpu WHERE cpu = 'cpu-total' ORDER BY time DESC LIMIT 5
```
</div>
Laissons tourner `telegraf` afin de constituer un petit historique de valeurs.

View file

@ -54,11 +54,13 @@ vous codez.
Lorsqu'une ligne devient complexe, allez à la ligne :
<div lang="en-US">
```
RUN apt-get update && apt-get install -y \
nginx \
php5-fpm
```
</div>
Notez les backslashs à la fin des lignes, indiquant qu'elle n'est pas terminée.
@ -67,6 +69,7 @@ Notez les backslashs à la fin des lignes, indiquant qu'elle n'est pas terminée
Lorsque c'est possible, ordonnez vos lignes suivant un ordre logique. Par
exemple :
<div lang="en-US">
```
RUN apt-get update && apt-get install -y \
bzr \
@ -75,6 +78,7 @@ RUN apt-get update && apt-get install -y \
mercurial \
subversion
```
</div>
## Profitez du système de cache
@ -149,16 +153,19 @@ L'entrypoint peut être utilisé de deux manières différentes :
après le nom de l'image, corresponde aux arguments attendu par le programme
indiqué dans l'entrypoint. Par exemple pour nginx :
<div lang="en-US">
```
ENTRYPOINT ["nginx"]
CMD ["-g daemon off;"]
```
</div>
- Vous pouvez aussi utiliser un script qui servira à faire les initialisations
ou les configurations nécessaire au bon fonctionnement du conteneur
(rappelez-vous, il doit être éphémère !). Par exemple, le `Dockerfile` pour
l'image de PostgreSQL possède cet entrypoint :
<div lang="en-US">
```shell
#!/bin/bash
set -e
@ -175,6 +182,7 @@ fi
exec "$@"
```
</div>
## `[""]`, `'` et sans `[]`

View file

@ -10,9 +10,11 @@ La première chose à faire est de télécharger la liste des paquets. En effet,
afin de ne pas livrer de superflu, la liste des paquets et son cache ne sont
pas incluses dans le conteneur.
<div lang="en-US">
```
apt-get update
```
</div>
Il peut arriver que des paquets présents dans l'image ne soient pas à
jour. Afin de garder un environnement cohérent, il est recommandé de ne pas
@ -22,16 +24,20 @@ jour.
Installons maintenant un programme :
<div lang="en-US">
```
apt-get install nano
```
</div>
En attendant la fin de l'installation, jetons un œil à la commande dans un
autre terminal :
<div lang="en-US">
```
docker container ls
```
</div>
Cette commande liste les conteneurs actifs. Notez le *Container ID* ainsi que
le *NAMES* du conteneur actuellement en cours d'installation de `nano`.
@ -42,17 +48,21 @@ Lorsque l'installation de `nano` est terminée, quittez l'image en tapant
Sauvegardez votre image modifiée avec la commande `commit` pour pouvoir
commencer directement de votre image avec `nano` :
<div lang="en-US">
```
docker container commit CONTAINER my_nano
```
</div>
en remplaçant `CONTAINER` par le nom ou l'identifiant de votre
container. `my_nano` est le nom que vous voudrez utiliser à la place
d'`ubuntu` :
<div lang="en-US">
```
docker container run -it my_nano /bin/bash
```
</div>
Vous constatez cette fois que vous pouvez lancer `nano`, alors que vous ne
pouvez toujours pas le faire dans un conteneur issu d'une image `ubuntu` !

View file

@ -29,9 +29,11 @@ Pour tester la bonne marche de vos conteneurs, vous pouvez le lancer votre
conteneur chronograf avec la commande suivante (en considérant que votre
conteneur influxdb de la première partie est toujours lancé).
<div lang="en-US">
```shell
docker run --rm --link YOUR_INFLUX_CNTR_NAME:influxdb chronograf
```
</div>
Remplacez `YOUR_INFLUX_CNTR_NAME` par le nom du conteneur qui fait tourner
votre influxdb. En créant ce lien, `chronograf` sera capable de contacter une
@ -48,7 +50,9 @@ Après avoir ajouté le serveur (en remplaçant `localhost` proposé par défaut
`influxdb` issue du *link*), ajouter deux visualisations avec les requêtes
suivantes :
<div lang="en-US">
```sql
SELECT used, available, cached FROM mem WHERE tmpltime()
SELECT mean(usage_idle) FROM cpu WHERE tmpltime() GROUP BY time(20s), cpu
```
</div>

View file

@ -39,9 +39,11 @@ lance puis attend que les deux deamons aient terminés de s'exécuter.
Pour vérifier que votre conteneur fonctionne correctement, vous pouvez le
lancer :
<div lang="en-US">
```shell
docker run --rm -p 10000:10000 mymonitoring
```
</div>
Puis accéder à chronograf : <http://localhost:10000/>. Donnez un nom à votre
configuration, puis cliquez sur *Add*. Les paramètres préremplis dans le
@ -60,9 +62,11 @@ conteneur qui délivre des pages web), il va être possible de redémarrer le
conteneur automatiquement grâce à la *restart policy* que l'on peut définir au
moment du `docker run` :
<div lang="en-US">
```shell
docker run -d -p 80:80 --restart=on-failure nginx
```
</div>
Il existe trois règles de redémarrage différentes :