Outils pour utilisateurs

Outils du site


docker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

docker [2018/04/26 13:39] (Version actuelle)
Ligne 1: Ligne 1:
 +{{tag> virtualisation sysadmin veille}}
 +
 +===== Docker =====
 +
 +Un compromis hype, léger, performant entre chroot et virtualisation
 +
 +==== Biblio / sources ====
 +https://​docs.docker.com/​installation/​fedora/​
 +
 +https://​www.guillaume-leduc.fr/​docker-comme-solution-de-virtualisation-theorie.html
 +
 +http://​fedoramagazine.org/​quick-containers-with-fedora-dockerfiles/​
 +
 +
 +==== Installation sur CentOS ====
 +
 +<​code>​
 +
 +yum-config-manager ​    ​--add-repo ​    ​https://​download.docker.com/​linux/​centos/​docker-ce.repo
 +
 +yum install docker-ce
 +
 +systemctl enable --now docker
 +</​code>​
 +
 +
 +**attention** à l'​ordre des arguments
 +<​code>​
 +docker ​ run -i -t  centos:​latest ​ /bin/bash
 +</​code>​
 +
 +exécution d'un shell en mode ''​i''​nteractif,​ avec allocation d'un ''​t''​ty dans une image //IMAGE//
 +
 +toute modification apportée à une image en cours de fonctionnement est perdu dès qu'on arrête / quitte le container.
 +
 +Il faut les commiter:
 +  - récupérer l'id du container en cours de fonctionnement (docker ps)
 +  - commiter les modifications:​
 +<​code>​
 +sudo docker commit -a "​thomas constans"​ -m "​installation java 1.8" fervent_fermi thomas/​centos:​7
 +</​code>​
 +   - -a : auteur
 +   - -m : commentaire de commit
 +   - //​fervent_fermi//​ : id ou nom de l'​image à committer.
 +   - thomas/​centos:​7 nom et tag de la nouvelle image
 +
 +pour une [[:​image|image]] [[:​tomcat|tomcat]] (par ex thomas/​centos:​7) il faut lancer le script d'init en avant plan pour éviter que le container ne se termine une fois la commande lancée:
 +<​code>​
 +sudo docker run -t  -d -p 8081:8080 thomas/​centos:​7 /​opt/​tomcat/​bin/​catalina.sh run
 +</​code>​
 +
 +==== Divers ====
 +
 +Completion automatique pour [[:​fish|fish]] : https://​github.com/​barnybug/​docker-fish-completion
 +
 +==== Commandes diverses ====
 +=== lancer un shell dans un container déjà lancé ===
 +<​code>​
 +docker exec -it NAME /bin/bash
 +</​code>​
 +=== Supprimer tous les containers //exited// ===
 +<​code>​
 + ​docker rm $(docker ps -f status=exited -q)
 +</​code>​
 +
 +=== voir le réseau ===
 +
 +C'est marrant, un container peut prendre l'ip d'un autre :)
 +<​code>​
 +docker network inspect
 +docker network disconnect NETID CONTAINER
 +docker network connect NETID CONTAINER
 +</​code>​
 +
 +Créer un container mariadb avec stockage externe et persistant, accessible via
 +le port 1234:
 +<​code>​
 +docker run --name mymaria -v /​home/​tom/​Docker/​Mariadb/​data:/​var/​lib/​mysql -p
 +1234:3306 -e  MYSQL_ROOT_PASSWORD=CHANGEMEFIRST -d mariadb:10
 +</​code>​
 +
 +==== Dockerfile ====
 +
 +ENTRYPOINT : spécifie la commande à exécuter systématiquement au lancement du container - voir l'​option --entrypoint
 +
 +CMD : un peu plus souple, accepte de spécifier la commande en CLI - argument passés à ENTRYPOINT
 +
 +# vim: set filetype=dokuwiki:​
  
docker.txt · Dernière modification: 2018/04/26 13:39 (modification externe)