====== Docker ====== ===== Installation de Docker ===== L'installateur de Docker supprimera les installations de GIT existantes. Une version de GIT spécifique sera installé. Le fichier d'installation se trouve à l'adresse : [[https://www.docker.com/docker-toolbox]]. ===== Utilisation du dépôt WBC ===== Adresse du dépôt : ''docker.wcentric.com'' ==== Authentification ==== Le dépôt n'a aucun système d'authentification actuellement. Par contre il n'est accessible qu'à partir du réseau interne de WEBCENTRIC. ==== Certificat ==== Le certificat est auto-signé. Pour utiliser le dépôt, il faut ajouter le certificat. Il se trouve à l'adresse suivante : ''http://docker.wcentric.com/ca.crt''. Le script suivant peut être utilisé pour ajouter le certificat sur les clients Windows : #!/bin/bash VM=default DOCKER_MACHINE=`which docker-machine` #### ## Step 1 : Start Docker #### if [ ! -z "$VBOX_MSI_INSTALL_PATH" ]; then VBOXMANAGE=${VBOX_MSI_INSTALL_PATH}VBoxManage.exe else VBOXMANAGE=${VBOX_INSTALL_PATH}VBoxManage.exe fi BLUE='\033[1;34m' GREEN='\033[0;32m' NC='\033[0m' if [ ! -f "$DOCKER_MACHINE" ] || [ ! -f "${VBOXMANAGE}" ]; then echo "Either VirtualBox or Docker Machine are not installed. Please re-run the Toolbox Installer and try again." exit 1 fi "${VBOXMANAGE}" showvminfo $VM &> /dev/null VM_EXISTS_CODE=$? set -e if [ $VM_EXISTS_CODE -eq 1 ]; then echo "Creating Machine $VM..." "$DOCKER_MACHINE" rm -f $VM &> /dev/null || : rm -rf ~/.docker/machine/machines/$VM "$DOCKER_MACHINE" create -d virtualbox --virtualbox-memory 2048 $VM else echo "Machine $VM already exists in VirtualBox." fi echo "Starting machine $VM..." "$DOCKER_MACHINE" start $VM echo "Setting environment variables for machine $VM..." eval "$($DOCKER_MACHINE env --shell=bash $VM)" echo -e "${BLUE}docker${NC} is configured to use the ${GREEN}$VM${NC} machine with IP ${GREEN}$($DOCKER_MACHINE ip $VM)${NC}" #### ## Step 2 : Add certificat #### "$DOCKER_MACHINE" ssh $VM << EOF sudo mkdir -p /etc/docker/certs.d/docker.wcentric.com/ sudo wget -O /etc/docker/certs.d/docker.wcentric.com/ca.crt http://docker.wcentric.com/ca.crt EOF #### ## Step 3 : Regenerate certificats #### "$DOCKER_MACHINE" regenerate-certs --force $VM echo "Everything is OK" echo "Press any key to quit...." read -n1 ===== Résolution des problèmes ===== ==== Liste des process ==== Cette commande permet de lister tous les PID des containers. docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.ID}}, {{.Name}}' Vous pouvez ensuite déterminer les process du container avec la commande suivante : ps -f $(pgrep -P PID) Remplacez PID par le PID du container. ==== Problème de montage ==== Sur Windows, il peut y avoir des problèmes de montage sur la VM : docker run --rm -it -v /c/Users/utilisateur:/home/utilisateur ubuntu bash invalid value "C:\\Users\\bonnet;C:\\Program Files\\Git\\home" for flag -v: bad mount mode specified : \Program Files\Git\home See 'C:\Program Files\Docker Toolbox\docker.exe run --help'. Ce problème est dû à une gestion un peu particulière des chemins d'accès par MinGW. La solution est d'utiliser deux slash au début du chemin Windows : docker run --rm -it -v //c/Users/utilisateur:/home/utilisateur ubuntu bash ==== error initializing network controller ==== Erreur présente après mauvais arrêt de Docker. Dans ce cas il faut supprimer les fichiers du contrôleur réseau. rm -r /var/lib/docker/network