Outils pour utilisateurs

Outils du site


workshop_docker

Ceci est une ancienne révision du document !


<markdown>

# Workshop Docker : les conteneurs faciles

[Page dédiée à la présentation de Docker](/docker)

## Préliminaires ### Installer Docker Pour installer docker avant de venir : ``` bash sudo apt install docker.io ``` Ou bien vous pouvez suivre [la doc d'installation](https://docs.docker.com/engine/install/).

Vous devez etre dans le groupe docker pour pouvoir interagir avec le démon Docker sans passer par le user root. Pour cela : ``` bash 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 : ``` bash 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 * [Docker reference](https://docs.docker.com/engine/reference/commandline/docker/) * [Docker cheat sheet](https://www.docker.com/sites/default/files/d8/2019-09/docker-cheat-sheet.pdf)

## 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](https://hub.docker.com/_/alpine)

``` bash docker run –rm alpine:3.12 echo “Hello World !” ```

Lancer un shell dans un conteneur alpine linux. ``` bash 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 ``` bash docker run –rm -it python:3.8-alpine python ```

### Reproduire un bug avec python 3.5 sans avoir à l'installer ``` bash docker run –rm -it python:3.5-alpine python ```

### Démarrer un serveur mysql rapido en mode démon [Documentation de l'image mysql](https://hub.docker.com/_/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_EMPTY_PASSWORD=true tel qu'indiqué dans la documentation de l'image._ ``` bash 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é. ``` bash docker exec -it ma_bd ```

Pour tuer le conteneur de la BD. ``` bash docker kill ma_bd ```

### Démarrer le dernier wordpress sans rien installer (as usual) [Documentation de l'image wordpress](https://hub.docker.com/_/wordpress) Le wordpress à besoin d'une BD pour fonctionner. On peut néanmoins constater que le service démarre bien. ``` bash 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. ``` bash 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](http://localhost:8080).

## Dockerfile * [Dockerfile reference](https://docs-stage.docker.com/engine/reference/builder/) * [Dockerfile cheat sheet](https://kapeli.com/cheat_sheets/Dockerfile.docset/Contents/Resources/Documents/index) * [Dockerfile best practices](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/)

Pour travailler, il faut commencer par cloner le dépôt git d'exemple avec la commande suivante. ``` bash 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](https://docs-stage.docker.com/compose/compose-file/)

Un autre dépot à cloner pour travailler sur le sujet docker-compose avec la commande suivante : ``` bash 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.

</markdown>

workshop_docker.1602196002.txt.gz · Dernière modification : de Labomedia