====== 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