J'ai installé Docker sur mon Ubuntu 13.10 (Saucy Salamander) et quand je tape dans ma console:
sudo docker pull busybox
J'obtiens l'erreur suivante:
Pulling repository busybox
2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
Version Docker:
$ sudo docker version
Client version: 0.10.0
Client API version: 1.10
Go version (client): go1.2.1
Git commit (client): dc9c28f
Server version: 0.10.0
Server API version: 1.10
Git commit (server): dc9c28f
Go version (server): go1.2.1
Last stable version: 0.10.0
Je suis derrière un serveur proxy sans authentification, et voici mon /etc/apt/apt.conf
fichier:
Acquire::http::proxy "http://192.168.1.1:3128/";
Acquire::https::proxy "https://192.168.1.1:3128/";
Acquire::ftp::proxy "ftp://192.168.1.1:3128/";
Acquire::socks::proxy "socks://192.168.1.1:3128/";
Qu'est-ce que je fais mal?
Acquire::socks::proxy
signifie définir le proxy pour toutes les URL commençant par unsocks
schéma. Étant donné que votresources.list
n'a pas d'socks://
URL, cette ligne est entièrement ignorée.docker-compose
?Réponses:
Voici un lien vers la documentation Docker officielle pour le proxy HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Un bref aperçu:
Créez d'abord un répertoire de dépôt systemd pour le service Docker:
Créez maintenant un fichier appelé
/etc/systemd/system/docker.service.d/http-proxy.conf
qui ajoute laHTTP_PROXY
variable d'environnement:Si vous avez des registres Docker internes que vous devez contacter sans proxy, vous pouvez les spécifier via la
NO_PROXY
variable d'environnement:Changements de vidage:
Vérifiez que la configuration a été chargée:
Redémarrez Docker:
la source
/etc/default/docker
ne fonctionne pas. Peut-être que je devrais supprimerexport
comme celui documenté pour Centos.sudo systemctl restart docker
est en fait strictement requis pour qu'il fonctionne.systemctl
n'est pas disponible pour ubuntu 14.04, il utiliseupstart
pour afficher les services.Vos paramètres de proxy APT ne sont pas liés à Docker.
Docker utilise la variable d'environnement HTTP_PROXY, si elle est présente. Par exemple:
Mais à la place, je vous suggère de jeter un œil à votre
/etc/default/docker
fichier de configuration: vous devriez avoir une ligne pour décommenter (et peut-être ajuster) pour que vos paramètres de proxy soient appliqués automatiquement. Redémarrez ensuite le serveur Docker:la source
Sur CentOS, le fichier de configuration de Docker se trouve à:
L'ajout de la ligne ci-dessous m'a aidé à faire fonctionner le démon Docker derrière un serveur proxy:
la source
export
. Êtes-vous sûr que c'est correct?export
ne fonctionne que sur CentOS6 et sans CentOS7export HTTP_PROXY=...
est un bashisme, pour les shells non-bash (comme ce que / bin / sh peut être), utilisez deux lignesHTTP_PROXY=...
, puisexport HTTP_PROXY
cela dit, je n'en avais pas du tout besoinexport
.Si vous utilisez le nouveau Docker pour Mac (ou Docker pour Windows ), cliquez simplement avec le bouton droit sur l'icône de la barre d'état Docker et sélectionnez Préférences (Windows: Paramètres), puis accédez à Avancé, et sous Proxy, spécifiez vos paramètres de proxy à cet endroit. Cliquez sur Appliquer et redémarrer et attendez que Docker redémarre.
la source
Sur Ubuntu, vous devez définir le http_proxy pour le démon Docker, pas le processus client. Cela se fait en
/etc/default/docker
(voir ici ).la source
Pour étendre la réponse d'Arun , pour que cela fonctionne dans CentOS 7, j'ai dû supprimer les commandes "d'exportation". Alors éditez
Et ajouter:
Redémarrez ensuite Docker:
La source est ce billet de blog .
la source
Pourquoi un proxy lié localement ne fonctionne pas
Le problème
Si vous exécutez un proxy lié localement , par exemple en écoutant
127.0.0.1:8989
, il NE FONCTIONNERA PAS dans Docker pour Mac . Dans la documentation Docker :Il en va de même pour le serveur Docker. (Pour comprendre le côté serveur et le côté client de Docker, essayez d'exécuter
docker version
.) Et le côté serveur s'exécute sur une couche de virtualisation qui possède la siennelocalhost
. Par conséquent, il ne se connectera pas au serveur proxy sur lelocalhost
le système d'exploitation hôte.La solution
Donc, si vous utilisez un proxy lié localement comme moi, vous devez essentiellement faire les choses suivantes pour le faire fonctionner avec Docker pour Mac:
Faites écouter votre serveur proxy au
0.0.0.0
lieu de127.0.0.1
. Attention: vous aurez besoin d'une configuration de pare-feu appropriée pour empêcher tout accès malveillant.Ajoutez un alias de bouclage à l'
lo0
interface, par exemple10.200.10.1/24
:Définissez le proxy HTTP et / ou HTTPS à
10.200.10.1:8989
partir de Préférences dans le menu du plateau Docker (supposons que le serveur proxy écoute sur le port8989
).Après cela, testez les paramètres du proxy en exécutant une commande dans un nouveau conteneur à partir d'une image qui n'est pas téléchargée:
Remarque: l'alias de bouclage défini par
ifconfig
ne se conserve pas après un redémarrage. La rendre persistante est un autre sujet. Veuillez consulter cet article de blog en japonais (Google Translate peut vous aider).la source
C'est le correctif qui a fonctionné pour moi: Ubuntu, version Docker: 1.6.2
Dans le fichier
/etc/default/docker
, ajoutez la ligne:Redémarrez Docker
la source
Pour configurer Docker pour fonctionner avec un proxy, vous devez ajouter la variable d'environnement HTTPS_PROXY / HTTP_PROXY au fichier sysconfig Docker (
/etc/sysconfig/docker
).Selon si vous utilisez
init.d
ou l'outil de services, vous devez ajouter l'instruction "export" (en raison des journaux de rapport de bogue Debian - # 767441. Les exemples dans / etc / default / docker sont trompeurs concernant la syntaxe prise en charge ):Le référentiel Docker (Docker Hub) prend uniquement en charge HTTPS. Pour que Docker fonctionne avec des proxy d'interception SSL, vous devez ajouter le certificat racine proxy au magasin de clés de confiance des systèmes.
Pour CentOS, copiez le fichier
/etc/pki/ca-trust/source/anchors/
et mettez à jour le magasin de clés de confiance CA et redémarrez le service Docker.Si votre proxy utilise l'authentification NTLMv2 - vous devez utiliser des proxy intermédiaires comme Cntlm pour relier l'authentification. Ce billet de blog l'explique en détail .
la source
Dans la nouvelle version de Docker, docker-engine , dans une distribution basée sur systemd , vous devez ajouter la ligne de variable d'environnement à /lib/systemd/system/docker.service , comme cela est mentionné par d'autres:
la source
Après avoir installé Docker, procédez comme suit:
Ensuite, vous pouvez tirer ou faire n'importe quoi:
la source
Comme je ne suis pas encore autorisé à commenter:
Pour CentOS 7, j'avais besoin d'activer le EnvironmentFile dans "docker.service" comme il est décrit ici: Contrôlez et configurez Docker avec systemd .
Edit: J'ajoute ma solution comme indiqué par Nilesh. Je devais ouvrir "/etc/systemd/system/docker.service" et j'ai dû ajouter dans la section
Ce n'est qu'à ce moment que le fichier "etc / sysconfig / docker" a été chargé sur mon système.
la source
Pour résoudre le problème avec curl dans la construction Docker, j'ai ajouté ce qui suit dans le Dockerfile:
Notez que l'instruction ENV est AVANT l'instruction RUN.
Et afin de permettre au démon Docker d'accéder à Internet (j'utilise Kitematic avec boot2docker), j'ai ajouté ce qui suit dans
/var/lib/boot2docker/profile
:J'ai ensuite redémarré Docker avec
sudo /etc/init.d/docker restart
.la source
Si vous utilisez le proxy socks5, voici mon test avec Docker 17.03.1-ce avec le paramètre "all_proxy", et cela a fonctionné:
la source
La solution complète pour Windows, pour configurer les paramètres du proxy.
Vous pouvez le configurer directement en cliquant avec le bouton droit sur les paramètres, dans l'icône Docker, puis sur Proxies.
Vous pouvez y configurer l'adresse proxy, le port, le nom d'utilisateur et le mot de passe.
Dans ce format:
Exemple:
Rien de plus que ça.
la source
La simple définition de variables d'environnement proxy ne m'a pas aidé dans la version 1.0.1 ... J'ai dû mettre à jour le
/etc/default/docker.io
fichier avec la valeur correcte pour la variable "http_proxy".la source
Si vous êtes dans Ubuntu, exécutez ces commandes pour ajouter votre proxy.
Et décommentez les lignes qui spécifient
Et remplacez-le par votre serveur proxy et votre nom d'utilisateur appropriés.
Redémarrez ensuite Docker en utilisant:
Vous pouvez maintenant exécuter les commandes Docker derrière le proxy:
la source
Vous devrez peut-être configurer des variables en minuscules. Dans mon cas, mon fichier /etc/systemd/system/docker.service.d/http-proxy.conf ressemble à ceci:
Bonne chance! :)
la source
J'étais également confronté au même problème derrière un pare-feu. Suivez les étapes ci-dessous:
N'utilisez pas et ne supprimez pas le fichier https_prxoy.conf.
Rechargez et redémarrez votre conteneur Docker:
la source
Si vous êtes sur Ubuntu, vous devez exécuter cette commande:
Et rechargez Docker avec:
Ou allez
/etc/docker.io
avec nano ...la source
Sur Ubuntu 14.04 (Trusty Tahr) avec Docker 1.9.1, je viens de décommenter la
http_proxy
ligne, de mettre à jour la valeur puis de redémarrer le service Docker.puis
la source
Sur RHEL6.6 uniquement, cela fonctionne (notez l'utilisation de
export
):/ etc / sysconfig / docker
REMARQUE: les deux peuvent utiliser le
http
protocole.)Merci à https://crondev.com/running-docker-behind-proxy/
la source
Dans mon réseau, Ubuntu fonctionne derrière un serveur proxy ISA d'entreprise. Et cela nécessite une authentification. J'ai essayé toutes les solutions mentionnées ci-dessus et rien n'a aidé. Ce qui a vraiment aidé, c'était d'écrire une ligne proxy dans un fichier
/etc/systemd/system/docker.service.d/https-proxy.conf
sans nom de domaine.Au lieu de
ou
et un autre remplacement tel que
@ -> %40
ou\ -> \\
j'ai essayé d'utiliserEt ça marche maintenant.
la source
Essaye ça:
la source
Cela ne répond pas exactement à la question, mais pourrait aider, surtout si vous ne souhaitez pas traiter les fichiers de service.
Dans le cas où vous êtes celui qui héberge l'image, une façon consiste à convertir l'image en tant qu'archive tar à la place, en utilisant quelque chose comme ce qui suit sur le serveur .
Téléchargez simplement l'archive et reconvertissez-la en image.
la source