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
,443
ou 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ètreproxy
existant. Les valeurs possibles sontsystem
etmanual
.http
,https
,exclude
: Même signification qu'avec le paramètreproxy
. Prend effet seulement simode
est défini surmanual
.pac
: URL pour un fichier PAC. Prend effet seulement simode
estmanual
, 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
proxy
existant dans le fichieradmin-settings.json
continue 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:port
SOCKS5 host_ou_ip:port
: Tunnelle cette demande à travers le proxy SOCKShost_ou_ip:port
DIRECT
: 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
.