Conteneurs isolés du réseau
Les conteneurs isolés du réseau vous permettent de restreindre les conteneurs d'accéder aux ressources réseau, limitant où les données peuvent être téléchargées vers ou téléchargées depuis.
Docker Desktop peut appliquer un ensemble personnalisé de règles de proxy au trafic réseau depuis les conteneurs. Le proxy peut être configuré pour :
- Accepter les connexions réseau
- Rejeter les connexions réseau
- Tunneler à travers un proxy HTTP ou SOCKS
Vous pouvez choisir :
- À quels ports TCP sortants la politique s'applique. Par exemple, seulement certains ports,
80,443ou tous avec*. - Que ce soit de rediriger vers un seul proxy HTTP ou SOCKS, ou d'avoir une politique par destination via un fichier de Configuration Automatique de Proxy (PAC).
Configuration
En supposant que
la connexion forcée et la Gestion des Paramètres sont activées, ajoutez la nouvelle configuration de proxy au fichier admin-settings.json. Par exemple :
{
"configurationFileVersion": 2,
"containersProxy": {
"locked": true,
"mode": "manual",
"http": "",
"https": "",
"exclude": [],
"pac": "http://192.168.1.16:62039/proxy.pac",
"transparentPorts": "*"
}
}Le paramètre containersProxy décrit la politique qui est appliquée au trafic depuis les conteneurs. Les champs valides sont :
locked: Si vrai, il n'est pas possible pour les développeurs de remplacer ces paramètres. Si faux, les paramètres sont interprétés comme valeurs par défaut que le développeur peut changer.mode: Même signification qu'avec le paramètreproxyexistant. Les valeurs possibles sontsystemetmanual.http,https,exclude: Même signification qu'avec le paramètreproxy. Prend effet seulement simodeest défini surmanual.pac: URL pour un fichier PAC. Prend effet seulement simodeestmanual, et est considéré comme priorité plus élevée quehttp,https,exclude.transparentPorts: Une liste séparée par des virgules de ports (par ex."80,443,8080") ou un caractère générique (*) indiquant quels ports doivent être proxifiés.
ImportantTout paramètre
proxyexistant dans le fichieradmin-settings.jsoncontinue de s'appliquer au trafic depuis l'app sur l'hôte. Si le téléchargement du fichier PAC échoue, l'app Docker Desktop et ses conteneurs ne bloquent pas la demande ; à la place, ils tentent de se connecter directement à l'URL cible.
Exemple de fichier PAC
Pour des informations générales sur les fichiers PAC, voir les Docs Web MDN.
Voici un exemple de fichier PAC :
function FindProxyForURL(url, host) {
if (localHostOrDomainIs(host, 'internal.corp')) {
return "PROXY 10.0.0.1:3128";
}
if (isInNet(host, "192.168.0.0", "255.255.255.0")) {
return "DIRECT";
}
return "PROXY reject.docker.internal:1234";
}Le paramètre url est soit http://host_ou_ip:port soit https://host_ou_ip:port.
Le nom d'hôte est normalement disponible pour les demandes sortantes sur le port 80 et 443, mais pour d'autres cas il n'y a qu'une adresse IP.
Le FindProxyForURL peut retourner les valeurs suivantes :
PROXY host_ou_ip:port: Tunnelle cette demande à travers le proxy HTTPhost_ou_ip:portSOCKS5 host_ou_ip:port: Tunnelle cette demande à travers le proxy SOCKShost_ou_ip:portDIRECT: Laisse cette demande aller directement, sans proxyPROXY reject.docker.internal:n'importe_quel_port: Rejette cette demande
Dans cet exemple particulier, les demandes HTTP et HTTPS pour internal.corp sont envoyées via le proxy HTTP 10.0.0.1:3128. Les demandes de connexion aux IP sur le sous-réseau 192.168.0.0/24 se connectent directement. Toutes les autres demandes sont bloquées.
Pour restreindre le trafic se connectant aux ports sur la machine locale du développeur,
correspondez au nom d'hôte spécial host.docker.internal.