Outils pour utilisateurs

Outils du site


workshop_docker

Ceci est une ancienne révision du document !


Workshop Docker : les conteneurs faciles

Page dédiée à la présentation de Docker

Préliminaires

Installer Docker

Pour installer docker avant de venir :

sudo apt install docker.io

Ou bien vous pouvez suivre la doc d'installation.

Vous devez etre dans le groupe docker pour pouvoir interagir avec le démon Docker sans passer par le user root. Pour cela :

sudo usermod -aG docker MON_USERNAME
sudo su - MON_USERNAME
id

Vous devez voir apparaitre le groupe docker dans la liste de vos groupes.

Télécharger les images du workshop

Nous aurons besoin de ces images :

docker pull alpine:3.12
docker pull python:3.8-alpine
docker pull python:3.5-alpine
docker pull mysql:8
docker pull wordpress:5.5-apache

Présentation des concepts

  • Conteneur <> VM
  • Images Docker
  • Layered FS (Système de fichier multi couche)
  • Dockerfile
  • Docker Hub
  • Exposition de ports
  • Volumes

Reference

Exemples d'utilisation de Docker

Hello World

Utiliser un conteneur léger alpine linux pour executer une commande shell qui affiche "Hello World !". Documentation de l'image alpine

docker run --rm alpine:3.12 echo "Hello World !"

Lancer un shell dans un conteneur alpine linux.

docker run --rm -it alpine:3.12 sh

Pour sortir vous pouvez taper la la commande "exit" ou bien le raccourci "CTRL-D".

Executer un shell python v3.8 sans se préocuper de l'installation de python sur sa machine

docker run --rm -it python:3.8-alpine python

Reproduire un bug avec python 3.5 sans avoir à l'installer

docker run --rm -it python:3.5-alpine python

Démarrer un serveur mysql rapido en mode démon

Documentation de l'image mysql Pour démarrer le serveur et exposer le port 3306 du conteneur sur sa machine. _On précise que l'on n'utilise pas de mot de passe admin pour faire simple avec la variable d'environnement MYSQL_ALLOW_EMPTYPASSWORD=true tel qu'indiqué dans la documentation de l'image.

docker run --rm -d -p3306:3306 --name="ma_bd" -e "MYSQL_ALLOW_EMPTY_PASSWORD=true" mysql:8
docker logs -f ma_bd

Pour connecter un client mysql au serveur depuis le conteneur démarré.

docker exec -it ma_bd

Pour tuer le conteneur de la BD.

docker kill ma_bd

Démarrer le dernier wordpress sans rien installer (as usual)

Documentation de l'image wordpress Le wordpress à besoin d'une BD pour fonctionner. On peut néanmoins constater que le service démarre bien.

docker run --rm wordpress:5.5-apache

Démarrer un mysql + wordpress

On démarre les 2 conteneurs dans le meme réseau pour leur permettre de se parler. On configure le conteneur wordpress comme demandé sur la documentation de l'image.

docker network create wordpress
docker run --rm -d --network=wordpress --name="ma_bd" -e "MYSQL_ALLOW_EMPTY_PASSWORD=true" mysql:8
docker run --rm -d -p8080:80 --network=wordpress --name="mon_wordpress" -e "WORDPRESS_DB_HOST=ma_bd" -e "WORDPRESS_DB_USER=root" wordpress:5.5-apache
docker ps
docker logs -f mon_wordpress

Et visiter la page http://localhost:8080.

Dockerfile

Pour travailler, il faut commencer par cloner le dépôt git d'exemple avec la commande suivante.

cd
git clone https://github.com/mxbossard/dockerfile-example.git
cd dockerfile-example

Puis vous pouvez suivre le contenu du fichier README.md situé à la racine du dépot git.

Docker compose

docker-compose.yml référence

Un autre dépot à cloner pour travailler sur le sujet docker-compose avec la commande suivante :

cd
git clone https://github.com/mxbossard/docker-compose-example.git
cd docker-compose-example

Puis vous pouvez suivre le contenu du fichier README.md situé à la racine du dépot git.

workshop_docker.1602196002.txt.gz · Dernière modification : 2020/10/08 22:26 de Labomedia