Table des matières
Utilisation de docker
Si toutefois, vous ne trouviez pas la réponse à vos questions sur cette page, vous pouvez venir poser vos questions à Jean-Mathieu en H105.
Problèmes récurrents
Dans tous les cas
- Pour utiliser docker, vous devez vous connecter à un réseau. Ensuite, vérifiez que le sous réseau d'interface docker0 est bien présent :
login@machine $ ifconfig docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99 inet adr:172.17.42.1 Bcast:0.0.0.0 Masque:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 Packets reçus:0 erreurs:0 :0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B) ...
Sur les postes AIO (salles de tps)
Alias
Tout les alias concernant docker sont préfixés par _. Pour lister toute les commandes possibles concernant docker, il vous suffit d'enter la commande suivante dans un terminal:
$ alias | grep "alias _"
Commandes utiles
_showImages # Liste les images disponibles _clean # Permet de supprimer tous les conteneurs, à utiliser en cas de problème
Images disponibles
Serveur php mysql
_php7
Permet de lancer un serveur php mysql avec interface phpmyadmin, création d'un répertoire $HOME/Mes_projets_web si celui-ci n'existe pas, vos fichiers php, html, css, … doivent se trouver dans ce dossier. Une fois que vous obtenez le prompt:
@phpDev:~/Mes_projets_web$
Exécutez un navigateur web et allez à l'adresse http://localhost et http://localhost/phpmyadmin . Les mots de passe phpmyadmin pour le conteneur en cours sont disponibles à tout moment de cette manière:
@phpDev:~/Mes_projets_web$ cat ../php_dev_passwd.txt
Serveur PostgreSQL
Il faudra travailler dans le répertoire /home/pgsql_dev/Mes_projets_pgsql
Version mono-utilisateur
_postgresqlDev_mono
Permet de lancer un serveur postgreSql en mode utilisateur unique. Vous disposez de tout les droits sur la base. Une base postgres a été créée par défaut. D'autres bases sont créées au lancement du conteneur.
@pgsqlDev:~/Mes_projets_pgsql$ psql nom_base #nom_base
Version multi-utilisateurs
_postgresqlDev_multi
Permet de lancer un serveur postgreSql en mode utilisateur multiple (i.e.: les bases sont accessibles via les autres postes du réseaux local). Vous disposez de tout les droits sur la base. Une base “postgres” a été créée par défaut. D'autres bases sont créées au lancement du conteneur.
@pgsqlDev:~/Mes_projets_pgsql$ psql nom_base #nom_base
Après création d'une base et attribution des droits, un autre utilisateur peut accéder à la base créée depuis un autre poste avec le client psql directement sur la machine (sans avoir à lancer de conteneur), On admet qu'un conteneur a été lancé sur le poste g105-1 et que l'on souhaite se connecter à la base nom_base depuis le poste g105-2:
@g105-2:~$ psql -h g105-1 -U postgres -d nom_base #nom_base
Documentation
Une documentation (en français) très complète pour l'utilisation de PostgreSQL est disponible à l'adresse http://docs.postgresql.fr
Sur les portables M1 M2
Utilisation d'un serveur apache php mysql avec phpmyadmin
docker load -i php-dev.tar rm php-dev.tar alias @php-dev='docker run --rm -it --name phpDev -p 80:80 -p 3306:3306 -v $HOME/Mes_projets_web:/home/php_dev/Mes_projets_web php-dev' @php-dev
Nos images docker chez vous
Nous mettons à votre disposition des images docker que vous utiliserez pour certains enseignements. Vous pouvez tout a fait récupérer ces images pour les utiliser chez vous. Toutes les images sont disponible sous forme d'archive sur http://docker.info-ua/ en local ou sur http://docker.info.univ-angers.fr/ depuis internet.
Prérequis:
- Avoir docker installé (https://docs.docker.com/)
- Être dans le groupe docker:
usermod -aG docker my_user_name * Si vous êtes sur une debian pure, ne lisez pas le point suivant
- Sur d'autres distribution (par exemple ubuntu), le backend storage par défaut peut-être en aufs. Afin d'avoir une réactivité accrue des conteneurs, nous vous conseillons de passer le backend storage en devicemapper. Attention, effectuez cette manipulation uniquement si vous n'avez pas de container en cours, dans le cas contraire, commencez par commiter les conteneurs qui vous sont chers et sauvegardez vos images.
docker ps -a docker stop `docker ps -aq` # Pour tout vos containers important docker commit monPrecieuxConteneur nomDeMaPrecieuseImagePouvantRestituerMonPrecieuxConteneur # Pour toute vos images importante docker save maPrecieuseImagePouvantRestituerMonPrecieuxConteneur maPrecieuseImagePouvantRestituerMonPrecieuxConteneur.tar.gz docker save uneImagePrecieuse uneImagePrecieuse.tar.gz
# Passer de aufs à devicemapper en backend storage echo "DOCKER_OPTS=\"--storage-driver=devicemapper\"" > /etc/default/docker service docker restart
Lancement des conteneurs
vous@votre_pc$ xhost +local:docker
- Pour php7-dev-v2.1.tar:
vous@votre_pc$ docker load -i php-dev-v2.1.tar vous@votre_pc$ docker run --rm -it --name phpDev -p 80:80 -p 3306:3306 -v $HOME/Mes_projets_web:/home/php_dev/Mes_projets_web php-dev-v2.1
- Pour postgresql-dev.tar:
vous@votre_pc$ docker load -i postgresql-dev.tar vous@votre_pc$ docker run -it --name postgresqlDev -v $HOME/Mes_projets_pgsql:/home/postgres/Mes_projets_pgsql -p 5432:5432 --rm postgresql-dev