web-dev-qa-db-fra.com

docker-machine derrière proxy d'entreprise

J'essaie d'utiliser Docker-machine pour créer une instance sur un cloud privé (Openstack) situé derrière un proxy http d'entreprise. 

Est-il possible de dire à docker-machine d'utiliser le proxy ou dois-je disposer d'une image de survol qui est déjà préconfigurée avec la variable http_proxy env?

21
eighilaza

Avec la version actuelle de la machine docker, je ne trouve pas de meilleur moyen d'effectuer la modification, comme dans boot2docker ( Docker/Boot2Docker: Définir des proxies HTTP/HTTPS pour docker sous OS X )

Si vous définissez manuellement le proxy dans/var/lib/boot2docker/profile sous docker, après le redémarrage, le paramètre de proxy sera automatiquement supprimé. 

Je dois donc créer un poste de travail avec le --engine-env défini pour le proxy

docker-machine create -d virtualbox \
    --engine-env HTTP_PROXY=http://example.com:8080 \
    --engine-env HTTPS_PROXY=https://example.com:8080 \
    --engine-env NO_PROXY=example2.com \
    proxybox

REMARQUES:

C'est une réponse vieille de deux ans, beaucoup de changements se sont produits en docker, donc si vous ne pouvez toujours pas le faire fonctionner derrière le proxy, s'il vous plaît lire la réponse de @ Senri .

Documentation: créer une machine de docker

21
BMW

Comme mentionné précédemment, vous pouvez éditer le fichier à

$HOME\.docker\machine\machines\default\config.json

et définir les variables HTTP_PROXY, HTTPS_PROXY et NO_PROXY (ou les supprimer):

 "HostOptions": {
        "Driver": "",
        ...
        "EngineOptions": {
           ...
            "Env": [
              "HTTP_PROXY=http://10.121.8.110:8080",
              "HTTPS_PROXY=http://10.121.8.110:8080",
              "NO_PROXY=192.168.23.4"
            ],

Une fois le fichier édité, il suffit d’exécuter:

docker-machine provision 
29
Senri

La configuration existante de la machine fixe peut être modifiée pour ajouter un environnement pour le proxy. Le fichier config.json dans $ HOME/.docker/machine/machines //. Config.json peut être modifié. 

Ajoutez "HTTP_PROXY = http://example.com:8080 " à Env dans config.json. Redémarrez la machine et vous êtes tous ensemble. 

5
Yogesh Sajanikar

Si vous avez déjà créé la machine (VM), vous pouvez configurer le proxy comme suit:

1- SSH into the docker dev Host: docker-machine ssh dev
2- Add the following lines to /var/lib/boot2docker/profile (this file is read-only, use Sudo)
    export HTTP_PROXY=http://<proxy>:<port>
    export HTTPS_PROXY=http://<proxy>:<port>
3- Exit the ssh session and restart the docker machine: docker-machine restart dev 

La source

1
Abdelhafid

À partir de Docker 18.09, nous pouvons spécifier les varsaux d’environnement tels que le proxy sur le conteneur sur la ligne de commande, comme suit:

docker run --env HTTP_PROXY="172.10.13.14" -it myImage:latest /bin/bash

De plus, nous pouvons spécifier ces paramètres au client de docker en les écrivant dans le fichier ~/.docker/config.json comme suit:

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://127.0.0.1:3001",
     "noProxy": "*.test.example.com,.example2.com"
   }
 }
}

Plus d'informations sont disponibles sur le docs .

1
Fabulous