Annexe 1 : Quelques considérations techniques sur Docker
- Configurer le proxy dans les fichiers Dockerfile
- Proxy, VIP de sortie et Rate Limit sur Docker Hub
- Quelques variables d'environnement de Docker
Configurer le proxy dans les fichiers Dockerfile
Ajouter les variables d'environnement au début du fichier Dockerfile
:
# Set proxy
ENV http_proxy http://proxy.sipr.ucl.ac.be:889
ENV https_proxy http://proxy.sipr.ucl.ac.be:889
ENV no_proxy localhost,127.0.0.0,127.0.1.1,127.0.1.1,local.home
Alternativement cela peut être fait dans les fichiers docker-compose.yml
, voici un exemple :
services:
<service_name>:
# ...
environment:
HTTP_PROXY: 'http://host:port'
HTTPS_PROXY: 'http://host:port'
NO_PROXY: 'localhost, 127.0.0.1'
# autres variables d'environnement ...
Proxy, VIP de sortie et Rate Limit sur Docker Hub
Il y a de plus une limite de 100 pulls par 6h pour un utilisateur anonyme. Le proxy risque donc d'assez vite atteindre cette limite.
Il faudra donc :
- le désactiver le proxy dès que les machines peuvent sortir via le port 80 et 443
- à terme prendre un abonnement https://www.docker.com/pricing/
- une fois le problème résolu, le proxy peut-être ré-activé
NB : une solution de proxy plus pérenne doit encore être mise en place côté SIPR
Le même problème peut également se poser avec la VIP de sortie de haproxy qui est unique pour tous les services situés derrière celui-ci. L'idéal serait d'avoir une VIP de sortie par projet afin d'éviter tout problème de type rate limit ou max connection sur des services tiers.
Configuration complète du daemon
{
"storage-driver": "overlay2",
"log-driver": "syslog",
"debug": false,
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true,
"insecure-registries" : [ "<HOSTNAME DU REGISTRY>:5000" ]
}
Quelques variables d'environnement de Docker
DOCKER_HOST
: chemin (url ou socket unix) utilisé pour se connecter à l'API de Docker. Par défaut, la valeur estunix://var/run/docker.sock
. Autres protocoles supportés :tcp://<host>:port
etssh://<user>@<host>
(Docker 18.04+)DOCKER_API_VERSION
: version de l'PI Docker utilisée sur l'hôte. Par défaut c'est la version la plus récente supportée par Docker-Py.DOCKER_TIMEOUT
: timeout pour les appaels à l'APIDOCKER_CERT_PATH
: chemin du répertoire contenant le certificat client, celui du CA, ainsi que la clé privée du clientDOCKER_SSL_VERSION
: version SSl utiliséeDOCKER_TLS
: sécuriser les connexions à l'API en TLS sans vérifier l'authenticité de l'hôte DockerDOCKER_TLS_VERIFY
: sécuriser les connexions à l'API en TLS et vérifier l'authenticité de l'hôte Docker