Ceci est une ancienne révision du document !
Atelier animé par Augustin Riedinger développeur freelance lors du capitole du libre 2017. Les ressources pour participer à cet atelier ont été mises à disposition par A. Riedinger aux 'URLs suivantes:
Prérequis
$ sudo apt-get install docker.io $ sudo pip install docker-compose
Ajouter votre utilisateur dans le groupe docker
$ sudo usermod --append -G docker $USER $ newgrp docker
docker-compose run --rm --service-ports app /bin/bash ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
utilisateur dans le groupe docker
Attention de ne pas se placer sur une partition avec noexec
sudo usermod --append -G docker user
Les alias de commandes ci-dessous n'ont rien d'obligatoire, ils permettent de simplifier les commandes de gestion des instances docker:
$ alias docker-enter="docker-compose run --rm --service-ports app /bin/bash" $ alias docker-enter-again="docker-compose run --rm app /bin/bash" $ alias docker-clean="docker ps -a | grep 'Exited\|Created' | cut -d ' ' -f 1 | xargs docker rm"
pourquoi utiliser docker?
pour certains projet besoin de versions spécifiques des BD, des framework, et si vous travailez sur plusieurs projets vous rencontrerez rapidement des problèmes de compatibilité entre les différentes versions des bibliothèques.
virtualbox/vagrant : coûte cher en ressources
Cloner le dépôt git:
$ git clone https://github.com/augnustin/docker-local-tutorial $ cd docker-local-tutorial/tutorial/1-boilerplate
Le dossier contient les fichiers suivants
. ├── docker-compose.yml ├── Dockerfile └── hello.py
docker container isole les processus mais réutilise, les libs et binaires du système quand c'est possible.
pour l'atelier
$
terminal, container comme une VM
docker-compose fichier yaml
app: le nom du container
volumes: - .:/app le dossier courant de la machine est lié a /app du container
Dans docker on a ds images dans docker 2 temps
docker-compose utilise le ficheir de configuration de
un container par service, on utilise l'image officielle de
docker-compose va nous permettre d'interconnecter les containers entre eux.
Pour créer un container soit image soit build avec en attribut le Dockerfile
alias docker-enter-again permet de reouvrir une session pour les commandes dans le container sans ecouter sur les ports
commandes permettant de lister les instances docker s’exécutant sur la machine
docker ps -a
Lister les images construites ou téléchargées
docker images