Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
enseignement:d35:tp:docker [2016/01/06 20:12] – Emmanuel Bruno | enseignement:d35:tp:docker [2018/11/09 10:23] – Emmanuel Bruno | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== D35 - TP5 - Docker ====== | ||
- | ===== Installer docker et docker-machine ===== | ||
- | Vous pouvez installer Docker sur votre machine personnelle en suivant : https:// | ||
- | |||
- | 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 limite (sur les volumes notamment). | ||
- | |||
- | Penser à configurer le proxy dans l' | ||
- | <cli> | ||
- | export https_proxy=http:// | ||
- | </ | ||
- | |||
- | Télécharger et installer les binaires de docker engine (c'est le moteur mais nous n' | ||
- | <cli> | ||
- | export PATH=~/ | ||
- | cd ~/bin | ||
- | curl -L https:// | ||
- | curl -L https:// | ||
- | curl -L https:// | ||
- | </ | ||
- | |||
- | Créer une machine virtuelle en y installant docker engine, fixer les variables d' | ||
- | <cli> | ||
- | docker-machine create --driver virtualbox default | ||
- | eval " | ||
- | docker-machine ip default | ||
- | </ | ||
- | |||
- | La suite est inutile grâce à l' | ||
- | < | ||
- | <cli> | ||
- | unset http_proxy | ||
- | </ | ||
- | |||
- | 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 / | ||
- | </ | ||
- | |||
- | ajouter dans le fichier : | ||
- | | ||
- | export HTTP_PROXY=http:// | ||
- | export HTTPS_PROXY=http:// | ||
- | export NO_PROXY=localhost, | ||
- | |||
- | puis relancer le service docker dans boot2docker (la VM), quitter la VM et tester depuis l' | ||
- | <cli> | ||
- | sudo / | ||
- | exit | ||
- | docker search ubuntu | ||
- | docker pull debian | ||
- | docker run -it --name debian debian | ||
- | </ | ||
- | |||
- | < | ||
- | Supprimer le conteneur Debian, ainsi que l' | ||
- | |||
- | 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. | ||
- | |||
- | 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:// | ||
- | </ | ||
- | |||
- | ==== Découverte de Docker ==== | ||
- | < | ||
- | Suivre le tutoriel https:// | ||
- | </ | ||
- | |||
- | Il est possible de passer des variables d' | ||
- | |||
- | Vous pouvez maintenant construire vos propres images, en personnalisant d' | ||
- | |||
- | ==== Travail à faire ==== | ||
- | * Mettre en place plusieurs serveurs MYSQL sur votre machine chacun doit pourvoir être par le client sur l' | ||
- | * Modifier le pour que les base de données soit dans des conteneurs séparés (si vous êtes root vous pouvez aussi monter un répertoire local). | ||
- | * Créer un conteneur qui contient et exécute une application peut exécuter une application Java | ||
- | * En utilisant docker-compose, | ||
- | * Compiler une application Java avec Maven en utilisant docker. Si vous n' | ||
- | |||
- | ==== Cas d' | ||
- | < | ||
- | Après avoir eu un compte sur https:// | ||
- | </ | ||
- | |||
- | Ajouter simplement le fichier minimal suivant à la racine (Il indique l' | ||
- | |||
- | <file | .gitlab-ci.yml> | ||
- | package: | ||
- | image: | ||
- | script: mvn package | ||
- | </ | ||
- | |||
- | Vérifier que la compilation et les tests passent, vérifier qu'une erreur est bien détecté. Par défaut, gitlab utilise des runner (https:// | ||
- | |||
- | ==== Utilisation d'un repository privé pour la compilation ==== | ||
- | Se connecter au repository privé (il faut un compte à demander à M. Bruno) et installer l' | ||
- | <cli> | ||
- | docker login docker.lsis.univ-tln.fr: | ||
- | docker pull docker.lsis.univ-tln.fr: | ||
- | </ | ||
- | |||
- | Un simple test de maven : | ||
- | <cli> | ||
- | docker run -v `pwd`:/ | ||
- | </ | ||
- | |||
- | Une compilation complète (ne marche pas en non root ou dans le groupe docker à cause du montage NFS) : | ||
- | |||
- | <cli> | ||
- | mvn archetype: | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | cd MyApp | ||
- | |||
- | docker run -v `pwd`:/ | ||
- | </ | ||
- | Le répertoire courant est monté dans le conteneur dans la VM, ainsi que le ~/.m2 | ||
- | |||
- | {{tag> | ||
- | |||
- | ---- dataentry page ---- | ||
- | type : TP | ||
- | enseignement_tags | ||
- | technologie_tags | ||
- | theme_tags | ||
- | ---- | ||
---- struct data ---- | ---- struct data ---- | ||
+ | metadata.level | ||
+ | metadata.Type | ||
+ | metadata.Nom | ||
+ | metadata.Enseignements : D35 | ||
+ | metadata.Promotions | ||
+ | metadata.Technologies : Docker | ||
+ | metadata.Thèmes | ||
+ | metadata.Description : | ||
---- | ---- | ||