Docker, un outil de configuration

Ce n'est pas une autre vm mais une plateforme d'outil pour dev et sysadmins, qui utilise des containers - un conteneur Docker n'inclut pas de système d'exploitation. Projet open source à partir de mars 2013.

commandes utiles

https://mondedie.fr/d/7164-Tuto-Utilisation-de-Docker/6

docker images */*cloud

supprimer image docker rmi [nom Image ou ID image]:[tag]
si on supprime une image que l'on possède avec plusieurs tags, il ne supprime pas l'image, mais l'alias

Un conteneur ne peut se lancer que s'il a une commande à exécuter. Les images applicatives ont généralement une commande par défaut. Une fois cette commande terminé, le conteneur s'arrête.

faire comme un tail

$ docker logs --tail=20 26a90f804cd6 # Affiche les 20 dernières lignes
$ docker logs -f 26a90f804cd6 # Affiche les logs au fur et à mesure

suppression de tous les conteneurs :  docker rm $(docker ps -aq)

ses cas concrets

liste des arguments que nous utiliserons dans cette partie (lutim = Let's Upload That Image):
-t : Fournit un terminal au docker   ;   -i : Permet d'écrire dans le conteneur (couplé à -t)
-d : Exécute le conteneur en arrière plan
-v : Permet de monter un répertoire local sur le conteneur   ;  -p : Permet de binder un port sur le conteneur vers un port sur le host
-e : Permet l'ajout d'une variable d'environnement (utilisée soit directement par l'application, soit par le script d'init de l'image)
--name : Donne un nom au conteneur
--rm : Détruit le conteneur une fois terminé
-w : Choisit le répertoire courant (dans le conteneur)
--link : Permet de faire un lien entre deux conteneurs

ex d'install : $ docker run -d --name lutim -p 8181:8181 -e UID=1000 -e GID=1000 -e SECRET=mysecretcookie -e WEBROOT=/images
-v /docker/config/lutim:/usr/lutim/data -v /docker/data/lutim:/usr/lutim/files xataz/lutim

-> WEBROOT est une variable qui permettra la modification du webroot du fichier de configuration de l'application, donc ici nous y accederons via http://XX.XX.XX.XX:8181/images. SECRET est une variable qui permettra la modification du secret du fichier de configuration de l'application.

docker inspect -f '{{.Config.env}}' lutim

 

 

 


vocabulaire de base

https://docs.docker.com/get-started/  et https://fr.wikipedia.org/wiki/Docker_%28logiciel%29

Un conteneur permet d'isoler chaque service (apache, mysql...). Chaque conteneur est relié par des réseaux virtuels. Il est possible de monter des volumes de disque de la machine hôte dans un conteneur.

  • containerization : utilisation des containers Linux pour déployer des applications
  • un container lance une image (paquets pour lancer une appli, avec le code, runtime, les lib, var d'environnement, fichiers de conf). Un container est un environnement (espace séparé) pour faire tourner des applis - pour voir les containers qui tournent : docker ps

"Docker software as a service" a 3 composants :

  • dockerd, tourne en /var/lib/docker
  • Objects (images pour les templates en read-only , containers géré avec API ou cli, et services qui créent les swarm) et
  • Registries (repo pour les images, les clients s'y co).
    Un registre peux etre privé ou publique. 2 registres publiques principaux : Docker Hub et Docker Cloud - le Hub est le registre par défaut, où Docker cherche les images.

Outils

Docker Compose (docker-compose)

définir et lancer des applis Docker. Utilise des fichiers YAML pour conf services (cf docker-compose.yml)

Docker Swarm

cluster


container.png

Un containeur ne fonctionne pas avec une IP statique. Les Liens Docker : le plus simple pour trouver un service.
Les Liens Docker : le plus simple pour trouver un service.

docker run --link ctr:alias . . . et le conteneur ctr sera un alias connu dans le nouveau conteneur

DevOps Tools : Integrations avec Chef, Puppet, Jenkins, Travis, Salt, Ansible +++
Orchestration tools : Mesos, Heat, ++, Shipyard...
Applications : Des 1000 d'applications à index.docker.io https://hub.docker.com/explore/ https://store.docker.com/
OS: Red Hat, RHEL, Fedora...
Plusieurs Private PaaS, Public PaaS et Iaas,

Requiert au min 16 Go (disk OS), 2 Go Ram

Officiel https://docs.docker.com/ - https://docs.docker.com/glossary/ - https://docs.docker.com/engine/reference/commandline/cli/
ex : composer (https://store.docker.com/images/composer), drupalhttps://store.docker.com/images/drupal) ,...

votes sur stack

Puis construire sa 1ere application (https://docs.docker.com/get-started/part2https://hub.docker.com/  https://docs.docker.com/engine/userguide/

https://en.wikipedia.org/wiki/Category:Linux_Containerization

 

en fr

https://raspbian-france.fr/docker-swarm-raspberry-pi/ de juin 2017
https://dyrk.org/2017/06/09/docker-creer-des-images-dockers-en-toute-sim...
https://www.guillaume-leduc.fr/docker-comme-solution-de-virtualisation-t... 2014

http://www.it-wars.com/posts/virtualisation/docker-swarm-par-lexemple/ de 2016
http://sametmax.com/le-deploiement-par-conteneurs-avec-docker/ de 2014

logo drush