Docker
Installation de Docker
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 :
- update-ca.sh
#!/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