English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Contexte
Dans certains environnements de laboratoire, les serveurs n'ont pas de permission de se connecter directement à internet et nécessitent un proxy réseau. Nous configurons généralement le proxy réseau directement dans/etc/environment,/etc/profile et autres fichiers de configuration, ce qui est généralement可行 pour la plupart des opérations. Cependant, les commandes docker ne peuvent pas utiliser ces proxies.
Par exemple, lors du téléchargement d'une image avec docker pull, il peut y avoir une erreur comme suit :
$ docker pull hello-world Impossible de trouver l'image 'hello-world:latest' localement Téléchargement du dépôt docker.io/library/hello-world docker: Le réseau a expiré lors de la tentative de connexion à https://index.docker.io/v1/repositories/library/hello-world/images. Vous pourriez vouloir vérifier votre connexion internet ou si vous êtes derrière un proxy.. Voir 'docker run --help'.
ps: Cet article est écrit sous Ubuntu16.04les tests ont réussi.
Solution une :
Arrêter le service docker, utiliser manuellement2375Démarrer le daemon docker en écoutant sur tous les ports de réseau.
$ systemctl stop docker.service $ nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
Solution deux :
éditer le fichier de configuration, sous Ubuntu c'est/etc/default/docker, sous CentOS c'est/etc/sysconfig/docker. Cependant, modifier ces deux fichiers pour configurer le daemon est désormais déconseillé. Ce méthode n'est pas recommandée.
HTTP_PROXY="http://[proxy-[proxy-/" HTTPS_PROXY="https://[proxy-[proxy-/" export HTTP_PROXY HTTPS_PROXY
Solution trois :
Cette méthode est persistante, les modifications resteront en vigueur après modification. Cette méthode remplace le fichier docker.service par défaut.
1. Création d'un répertoire systemd intégré pour le service docker
$ mkdir -p /etc/systemd/system/docker.service.d
2. Création/etc/systemd/system/docker.service.d/http-proxy.conf fichier, et ajoutez l'environnement variable HTTP_PROXY.-[addr] et [proxy-port] en fonction de l'adresse et du port réels du proxy :
[Service] Environment="HTTP_PROXY=http://[proxy-[proxy-/"HTTPS_PROXY=https://[proxy-[proxy-/"
3. Si vous avez des registres Docker internes qui n'ont pas besoin d'utiliser un proxy pour accéder, alors vous devez définir la variable d'environnement NO_PROXY :
[Service] Environment="HTTP_PROXY=http://[proxy-[proxy-/"HTTPS_PROXY=https://[proxy-[proxy-/"NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
4. Mise à jour de la configuration :
$ systemctl daemon-reload
5. Redémarrage du service Docker :
$ systemctl restart docker
Voici la totalité du contenu de cet article, j'espère qu'il vous sera utile dans vos études, et j'espère que vous soutiendrez également le tutoriel de cri.
Déclaration : Le contenu de cet article est extrait du réseau, propriété de l'auteur original, le contenu est apporté par les utilisateurs d'Internet et téléversé spontanément. Ce site ne détient pas de droits de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu présumé enfreignant les droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu présumé enfreignant les droits d'auteur.)