par Andrei SAMBRA
C'est qui ce Andrei SAMBRA ?
On part sur un dialogue, pas un monologue !
Je reste à votre disposition pour le reste de la journée.
Posez-moi des questions à tout moment.
< Important
< Question
Qu'est-ce que Docker ?
Qu'est-ce que Docker ?
Réponse: un conteneur.
En termes simples, un conteneur est juste un autre processus sur votre machine qui a été isolé de tous les autres processus sur la machine hôte.
Pourquoi Docker ?
Pourquoi Docker ?
Étant donné que les conteneurs Docker encapsulent tout ce dont une application a besoin pour s'exécuter (et uniquement ces éléments), ils permettent aux applications d'être facilement déplacées entre différents environnements (data center, dev laptop, etc.) et architectures.
Comment ça marche?
Comment ça marche?
Comment ça marche?
Le fichier de configuration Dockerfile
Tout commence par un fichier de config qui définissent comment créer une image Docker spécifique. Ce fichier s'appelle un Dockerfile. Le fichier exécute automatiquement les commandes décrites et crée une image Docker.
Comment ça marche?
L'image Docker
C'est un fichier immuable (non modifiable) qui contient le code source, les bibliothèques, les dépendances, les outils et d'autres fichiers nécessaires à l'exécution d'une application. Ce sont des templates, vous ne pouvez pas les démarrer ou les exécuter.
Comment ça marche?
Le conteneur Docker
C'est un environnement d'exécution virtualisé et local dans lequel les utilisateurs peuvent isoler les applications du système sous-jacent. Ces conteneurs sont des unités compactes et portables dans lesquelles vous pouvez démarrer une application rapidement et facilement.
Comment ça marche?
- Pour créer une image à partir d'un Dockerfile: "~$ docker build"
- Pour créer un conteneur: "~$ docker create" ou "~$ docker run ..."
Terrain de jeux
Servir une page HTML statique
Dockerfile:
FROM nginx:alpine
COPY index.html /usr/share/nginx/html
Servir une page HTML statique
Fichier index.html
<html> <h1>Hello world!</h1> </html>
~$ chmod 755 index.html
Servir une page HTML statique
~$ docker build -t html .
~$ docker image ls
Servir une page HTML statique
~$ docker run -p 80:80 html
Servir une page HTML statique
~$ docker run -d -p 80:80 html
~$ docker ps
Servir une page HTML statique
Arreter le conteneur:
~$ docker stop <ID conteneur/nom>
Servir une page HTML statique
Après avoir fait des modifications dans index.html
~$ docker build -t html .
~$ docker rm <ID conteneur>
~$ docker run -d -p 80:80 html
Publier une image docker
Créer un repo sur Docker Hub
https://hub.docker.com/
- Cliquez sur Create Repository
- Choisissez un nom (i.e. test-html)
Créer un repo sur Docker Hub
$ docker push <user>/test-html
Using default tag: latest
The push refers to repository [docker.io/<user>/test-html]
An image does not exist locally with the tag: <user>/test-html
Pourquoi a-t-elle échoué? La commande push recherchait une image nommée <user>/test-html, mais n'en a pas trouvé.
Créer un repo sur Docker Hub
$ docker tag test-html <user>/test-html
Créer un repo sur Docker Hub
~$ docker login -u <user>
~$ docker push <user>/test-html
Créer un repo sur Docker Hub
~$ docker run -p 80:80 <user>/test-html
Utiliser des données externes
~$ mkdir data
~$ touch data/data.txt
Créez un dossier data/ et puis
un fichier data.txt a l'interieur
~$ docker run --mount type=bind,source="$(pwd)"/data,target=/usr/share/nginx/html/data -d -p 80:80 deiu/test-data
Démarrez le conteneur
~$ echo "Hello data" > data/data.txt
Créez un fichier data.txt dans le dossier data/
Astuces Docker
Les variables d'environnement
~$ echo $PATH
Les variables d'environnement
(une par une)
~$ docker run \
-d -p 8080:8080 \
-e PASSWORD=secret \ deiu/test-env
Les variables d'environnement
(dans un fichier)
~$ cat env.list DBFILE=/db/data.db ORIGIN=https://example.org:3000 PASSWORD=secret ~$ docker run \ -d -p 8080:8080 \
--env-file env.list \ deiu/test-env
Docker
By Andrei
Docker
- 1,533