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

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), drupal (à https://store.docker.com/images/drupal) ,...
votes sur stack
Puis construire sa 1ere application (https://docs.docker.com/get-started/part2) https://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