Use lang en-US for samples
This commit is contained in:
parent
f2f93440a7
commit
13dadd8c59
33 changed files with 318 additions and 0 deletions
|
@ -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,
|
||||
|
|
|
@ -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`.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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 `[]`
|
||||
|
|
|
@ -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` !
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 :
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue