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.

Adresse du dépôt : docker.wcentric.com

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.

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

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.

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

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