Outils pour utilisateurs

Outils du site


events:capitole-du-libre:2017:atelier-docker

Ceci est une ancienne révision du document !


Docker pour le dev local

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:

Installation de docker

Prérequis

  • docker
  • docker-compose

Ubuntu 14.04

  • Le dépot apt n'intègre pas docker-compose
  • Le paquet docker ne correspond pas au programme que nous cherchons à installer
$ sudo apt-get install docker.io
$ sudo pip install docker-compose==1.3.0
Veiller à bien spécifier la version de docker-compose car la dernière version utilisera un client docker trop récent par rapport à la version du serveur proposée par le dépôt apt et l'erreur suivante pourra se présenter:
ERROR: client and server don't have same version (client : 1.21, server: 1.18)

Ajouter votre utilisateur dans le groupe docker

$ sudo usermod --append -G docker $USER
$ newgrp docker
Ajouter l'utilisateur au groupe docker permet d’éviter l'erreur suivante à l'appel de docker-compose:
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

Debian 9

Les alias

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 travaillez 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

tuto 1

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.

  • dockerfile FROM, RUN, COPY fichier des commandes pour mettre en etat l'environnement
  • docker-compose.yml
  • docker

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

  • le build

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

Références

events/capitole-du-libre/2017/atelier-docker.1511190481.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)