Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:d35:tp:docker [2016/01/07 14:59] Emmanuel Brunoenseignement:d35:tp:docker [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== D35 - TP5 - Docker ====== ====== D35 - TP5 - Docker ======
 ===== Installer docker et docker-machine ===== ===== Installer docker et docker-machine =====
 +[[docker:dockerinvm|Mettre en place docker]].
  
-Vous pouvez installer Docker sur votre machine personnelle en suivant : https://docs.docker.com/engine/installation/+==== Découverte de Docker ====
- +
-Nous allons commencer par le mettre en place sur les machines des salles de TP (donc sans être root) cela fonctionne bien mais avec certaines limites (sur les volumes notamment). +
- +
-<note warning> +
-Pour que la machine virtuelle fonctionne, la machine hôte doit disposer d'un processeur compatible. Vous pouvez le tester avec (cette commandes doit renvoyer un résultat) : +
-  grep --color -e vmx -e svm /proc/cpuinfo +
-</note> +
- +
-Penser à configurer le proxy dans l'hôte : +
-<cli> +
-export https_proxy=http://login:password@proxy.univ-tln.fr:3128/ && export http_proxy=$https_proxy  +
-</cli> +
- +
-Télécharger et installer les binaires de docker engine (c'est le moteur mais nous n'utiliserons que le client sur l'hôte) et docker machine (le gestionnaire de VM). +
-<cli> +
-export PATH=~/bin:${PATH} +
-cd ~/bin +
-curl -L https://get.docker.com/builds/Linux/x86_64/docker-latest > docker && chmod +x docker +
-curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64 > docker-machine && chmod +x docker-machine +
-curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > docker-compose && chmod +x docker-compose +
-</cli> +
- +
-Créer une machine virtuelle en y installant docker engine, fixer les variables d'environnement qui vont permettre au client docker exécuter sur l'hôte d'utiliser le moteur installé dans la VM : +
-<cli> +
-docker-machine create --driver virtualbox default +
-eval "$(docker-machine env --no-proxy default)" +
-docker-machine ip default +
-</cli> +
- +
-<note warning> +
-Attention, par défaut la machine virtuelle est créée dans le répertoire  +
-~/docker/machine. En salle de TP celui-ci est sur le réseau, vous pouvez créer le répertoire ''votrelogin'' dans ''/usr/local/vbox/travail/'' et ajouter l'option ''--storage-path "/usr/local/vbox/travail/votrelogin"'' pour utiliser un espace local sur l'hôte. +
- +
-Attention, ''storage-path'' est une option de docker-machine et pas de ''create'', il faut donc la placer avant ou mieux faire un alias : +
-  alias docker-machine="docker-machine --storage-path /usr/local/vbox/travail/login" +
-  docker-machine create --driver virtualbox --engine-env http_proxy=http://login:passwd@proxy.univ-tln.fr:3128/ --engine-env https_proxy=$https_proxy default +
- +
-</note> +
- +
- +
- +
-   +
-Se connecter dans la VM et ajouter le proxy web pour permettre le téléchargement des images : +
-<cli> +
-docker-machine -D ssh default +
-sudo vi /var/lib/boot2docker/profile +
-</cli> +
- +
-ajouter dans le fichier : +
-   +
-  export HTTP_PROXY=http://login:password@proxy.univ-tln.fr:3128 +
-  export HTTPS_PROXY=http://login:password@proxy.univ-tln.fr:3128 +
-  export NO_PROXY=localhost,127.0.0.0/8,docker.lsis.univ-tln.fr +
- +
-puis relancer le service docker dans boot2docker (la VM), quitter la VM et tester depuis l'hôte: +
-<cli> +
-sudo /etc/init.d/docker restart +
-exit +
-docker search ubuntu +
-docker pull debian +
-docker run -it --name debian debian +
-</cli> +
 <note> <note>
-Supprimer le conteneur Debian, ainsi que l'image+Vérifier votre installation et regarder les commandes de bases avec les étapes 1 à 3 de https://docs.docker.com/engine/getstarted/step_one/
  
-Attention, la place est limitée dans la VM (cf. --virtualbox-disk-size à la création de la VM avec docker-machine) et surtout sur votre compte. +Suivre le tutoriel https://docs.docker.com/engine/getstarted/step_four/ pour créer sa propre image.
- +
-Le paramétrage du proxy peut être fait dès la création de la VM :  +
-docker-machine create --driver virtualbox --engine-env http_proxy=http://login:passwd@proxy.univ-tln.fr:3128/ --engine-env https_proxy=http://login:passwd@proxy.univ-tln.fr:3128/ default +
-</note> +
- +
-==== Découverte de Docker ==== +
-<note> +
-Suivre le tutoriel https://docs.docker.com/linux/ pour créer sa propre image.+
 </note> </note>
  
Ligne 83: Ligne 13:
  
 Vous pouvez maintenant construire vos propres images, en personnalisant d'autres (java, maven, payara, mysql, ...). Pour orchestrer l'installation d'un environnement complet composé de plusieurs conteneur il faut étudier : https://docs.docker.com/compose/ Vous pouvez maintenant construire vos propres images, en personnalisant d'autres (java, maven, payara, mysql, ...). Pour orchestrer l'installation d'un environnement complet composé de plusieurs conteneur il faut étudier : https://docs.docker.com/compose/
- 
-==== Accéder à ses fichiers depuis les conteneurs ==== 
- 
-Cette partie est optionnelle dans un premier temps.  
- 
-Depuis l'hôte, créer un répertoire qui sera exporté vers la VM et les conteneurs et ajouter le partage à VirtualBox 
-<cli> 
-bruno@u0251:~$ mkdir DOCKER 
-bruno@u0251:~$ docker-machine stop default 
-bruno@u0251:~$ VBoxManage sharedfolder add default --name dockerhome --hostpath /home/perso/bruno/DOCKER 
-bruno@u0251:~$ docker-machine start default 
-bruno@u0251:~$ eval "$(docker-machine env --no-proxy default)" 
-</cli> 
- 
-Dans la VM, monter le partage  
-<cli> 
-bruno@u0251:~$ docker-machine -D ssh default 
-docker@default:~$ mkdir HOME 
-docker@default:~$ sudo mount -t vboxsf dockerhome HOME 
-</cli> 
- 
-Maitenant vous pouvez créer des fichiers dans le "même" répertoire sur l'hôte (''/home/perso/bruno/DOCKER'') et dans la VM (ici ''/docker/HOME). Le répertoire /docker/HOME peut maintenant être utilisé comme premier paramètre de ''run -v ...'' pour utiliser des fichiers de l'hôte dans les conteneurs. Il faut faire attention aux droits par défaut (root). 
  
 ==== Travail à faire ==== ==== Travail à faire ====
Ligne 159: Ligne 67:
 {{tag>D35 TP Docker }} {{tag>D35 TP Docker }}
  
----- dataentry page ---- 
-type                 : TP 
-enseignement_tags    : D35 
-technologie_tags     : Docker 
-theme_tags           : Composants 
-----  
 ---- struct data ---- ---- struct data ----
 +metadata.level       : 
 +metadata.Type        : TP
 +metadata.Nom         : 
 +metadata.Enseignements : D35
 +metadata.Promotions  : M2
 +metadata.Technologies : Docker
 +metadata.Thèmes     : devops
 +metadata.Description : 
 ---- ----