web-dev-qa-db-fra.com

Docker/Boot2Docker: Définir des proxies HTTP/HTTPS pour le menu fixe sur OS X

En bref: Comment définir les proxies HTTP/HTTPS pour Docker sous Mac OS X?

En détail:

J'exécute Docker (1.12) sur Mac OS X derrière un proxy. J'ai suivi les instructions installation et j'ai installé boot2docker. Cela fonctionne bien si je tire de mon registre Docker interne au réseau.

Cependant, l'erreur suivante apparaît lors de l'extraction de docker.io:

machine:~ me$ docker run ubuntu echo hello world
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
2014/06/30 13:23:26 Get https://index.docker.io/v1/repositories/ubuntu/images:
dial tcp: lookup index.docker.io: no such Host

Remarque 1: DOCKER_Host, http_proxy et https_proxy sont disponibles dans l'environnement (l'exécution de env affiche les trois).

Note 2: J'ai lu dans d'autres publications que cette erreur se produit lorsque le démon ne fonctionne pas correctement. Cependant, docker version ne montre aucun problème. De plus, je peux extraire et exécuter des images extraites de mon registre Docker interne au réseau.

Note 3: J'ai pu configurer Docker sur Red Hat Linux (RHEL). Je devais ajouter les informations de proxy à /etc/sysconfig/docker. J'ai lu qu'il existe un fichier similaire sur Ubuntu (/etc/init/docker.conf). Cependant, je n’ai pas trouvé ce fichier pour Docker (ou boot2docker?) Sous Mac OS X.

39
rrhrg

Les fichiers de configuration que vous devez modifier ne seront pas sur votre système de fichiers OS X, ils seront attachés au système Tiny Core Linux VM, qui fait office de serveur Docker local.

Pour configurer le proxy pour cela, démarrez d'abord Boot2docker à partir d'applications. Une fois démarré, ouvrez une fenêtre de terminal et ssh dans la VM:

bash-3.2$ boot2docker ssh
Warning: Permanently added '[localhost]:2022' (RSA) to the list of known hosts.
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 1.0.1
             master : cad5ece - Fri Jun 20 02:03:40 UTC 2014
docker@boot2docker:~$

Maintenant, créez/modifiez/var/lib/boot2docker/profile pour définir les informations de proxy:

docker@boot2docker:~$ Sudo vi /var/lib/boot2docker/profile 

Tinycore a besoin des informations de proxy comme suit: protocole: // ip: port
Pour plus de sécurité, je configure les serveurs proxy pour HTTP et HTTPS.

export HTTP_PROXY=http://your.proxy.name:8080
export HTTPS_PROXY=http://your.proxy.name:8080

Vous pouvez maintenant redémarrer le service VM du menu fixe et quitter la machine virtuelle.

docker@boot2docker:~$ Sudo /etc/init.d/docker restart
docker@boot2docker:~$ exit
Connection to localhost closed.

Vous devriez pouvoir exécuter le client maintenant sur l’instance VM.

bash-3.2$ docker search ubuntu
NAME                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                                           Official Ubuntu base image                      356                  
stackbrew/ubuntu                                 Official Ubuntu base image                      39                   
crashsystems/gitlab-docker                       A trusted, regularly updated build of GitL...

Cette modification est persistante par le redémarrage de VM. Vous devriez seulement avoir besoin de le faire une fois.

Pour mémoire, VirtualBox a un paramètre de préférence global pour les mandataires mais rien de ce que j'ai essayé ne fonctionnerait.

98
Mike Blecha

Depuis la version 1.8 (août 2015) récente, la méthode recommandée par docker pour créer des hôtes docker - y compris les machines virtuelles boot2docker - consiste à utiliser son/ docker-machine utility.

De plus, depuis la version 1.8, docker-machine prend désormais en charge la configuration des mandataires au moment de la création de VM via un appel semblable à celui-ci:

docker-machine create -d virtualbox \
    --engine-env HTTP_PROXY=http://192.37.246.181:2010 \
    --engine-env HTTPS_PROXY=http://192.37.246.181:2010 \
    --engine-env NO_PROXY=novartis.net \
    default

Cela se traduit par un VM avec les variables d'environnement spécifiées déjà ajoutées au fichier d'initialisation/var/lib/boot2docker/profile - plus besoin de les ajouter manuellement.

18
avallen

Si vous utilisez Docker pour Mac et que vous vous trouvez dans un environnement proxy.

Cliquez sur l'icône du menu fixe dans la barre de menu supérieure. (comme indiqué à l'étape 1.3 ici )

Allez à Preferences > Advanced et définissez le proxy dans les options HTTP et HTTPS. Cliquez sur Appliquer et redémarrer en dessous. Tu es prêt. :)

1
chandan kharbanda

J'ai résolu ce problème en définissant la configuration du proxy dans le fichier .profile:

docker@boot2docker:~$ vi ~/.profile

ajoutez votre proxy à la fin:

#
PS1='\u@\h:\w\$ '
PAGER='less -EM'
MANPAGER='less -isR'

EDITOR=vi

export PS1 PAGER FILEMGR EDITOR MANPAGER

export BACKUP=1
[ "`id -un`" = "`cat /etc/sysconfig/tcuser`" ] && echo "$BACKUP" | Sudo tee /etc/sysconfig/backup >/dev/null 2>&1
export FLWM_TITLEBAR_COLOR="58:7D:AA"

if [ -f "$HOME/.ashrc" ]; then
   export ENV="$HOME/.ashrc"
   . "$HOME/.ashrc"
fi

TERMTYPE=`/usr/bin/tty`
[ ${TERMTYPE:5:3} == "tty" ] && (
[ ! -f /etc/sysconfig/Xserver ] ||
[ -f /etc/sysconfig/text ] ||
[ -e /tmp/.X11-unix/X0 ] ||
startx
)

export HTTP_PROXY=http://proxy.XX.com:8080
export HTTPS_PROXY=http://proxy.XX.com:8080

enfin, redémarrez votre Boot2Docker.

1
foxwmj

Pour résoudre le problème de curl dans le docker, j'ai ajouté ce qui suit à l'intérieur du fichier Docker:

ENV http_proxy=http://infoprx2:8080
ENV https_proxy=http://infoprx2:8080
RUN apt-get update && apt-get install -y curl vim

Notez que l'instruction ENV est BEFORE l'instruction RUN.

et afin de rendre le démon docker capable d'accéder à Internet (j'utilise kitematic avec boot2docker), j'ai ajouté ce qui suit dans/var/lib/boot2docker/profile:

export HTTP_PROXY=http://infoprx2:8080
export HTTPS_PROXY=http://infoprx2:8080
0
Bruno Negrão Zica

Le fichier de configuration dans boot2docker doit être /var/lib/boot2docker/profile, modifiez ce fichier en proxy http (s) personnalisé.

0
smartwjw