Comment puis-je obtenir Docker pour s'exécuter sur un système Windows derrière un pare-feu d'entreprise?
Je vais essayer d'obtenir un travail de Docker à l'installation en suivant ce tutoriel:
http://docs.docker.io/en/latest/installation/windows/
Jusqu'à présent, j'ai eu la VM en cours d'exécution avec un téléchargés manuellement référentiel (suivre le lien GitHub et téléchargé en tant que fichier ZIP, parce que "git clone" ne marche pas derrière mon proxy d'entreprise, même après la mise en place du proxy avec "git conf --http global.proxy ..." - il m'a posé des questions pour l'authentification 407, bien que j'ai entré mon nom d'utilisateur et mot de passe).
Maintenant, je suis dans l'état dans lequel je dois utiliser "docker run busybox echo hello world
" (Section "Exécution de Docker").
Quand je fais cela, j'ai d'abord dit que le Panneau n'est pas installé (comme indiqué au bas de ce tutoriel), et puis, après je l'ai eu avec apt-get install docker
, je reçois "erreur de Segmentation ou de la critique de l'erreur rencontrée. Antidumping de base et de l'abandon."
Ce que je peux faire maintenant? Est-ce parce que je n'ai pas utilisé git clone
ou est quelque chose de mal avec l'installation de Docker? J'ai lu quelque part, que apt-get install docker
ne pas installer le Docker je veux, mais certains GNOME outil. Je peux peut-être préciser mon apt-demande pour obtenir le bon outil?
- Après l'exécution de
vagrant up
, exécutezvagrant provision
. Laissez-moi savoir si il y a des erreurs. Le vagrantfile/virtualbox nécessite la connexion à l'internet. - J'ai maintenant choisi une autre manière de rond - après le réglage de la machine virtuelle avec Vagrant, je l'ai commencé dans sa propre coquille avec VirtualBox et suivi de l'Linux/Ubuntu-Tutoriel sur comment installer un conteneur lxc-docker, qui finalement a bien fonctionné après beaucoup de proxy-configuration. Atm, je ne suis coincé nouveau au point, où je dois utiliser "docker run busybox" (ou tout autre référentiel). Bien que le panneau est installé, le temps de connexion à tout en tirant le référentiel de votre choix, qui est un proxy-question encore une fois, je suppose.
- Si vous souhaitez utiliser Git derrière un proxy authentifié, vous pouvez configurer un Calmar avec un
cache_peer
de votre proxy et l'utiliser comme votrehttp.proxy
.
Vous devez vous connecter pour publier un commentaire.
Windows Boot2Docker derrière proxy d'entreprise
(Contexte: en Mars 2015, Windows 7, derrière un proxy d'entreprise)
TLDR; voir le projet GitHub
VonC/b2d
:Clone et:
..\env.bat
à la suite de laenv.bat.template
,profile
fichier,senv.bat
puisb2d.bat
.Vous êtes alors correctement personnalisé
boot2docker
environnement:docker search/pull
.apt-get update/install
et que vous tapez unedocker build
.Installation et premiers pas
Si vous êtes administrateur de votre poste de travail, vous pouvez exécuter boot2docker l'installer sur votre Windows.
Il est actuellement livré avec:
Puis, une fois installé:
c:\path\to\Boot2Docker For Windows\
dans votre%PATH%
boot2docker init
boot2docker start
boot2docker ssh
exit
pour quitter la session ssh, etboot2docker ssh
de revenir en arrière dans l'histoire de commandes que vous venez de taper est préservée.boot2docker stop
Vous pouvez voir la VM de démarrer ou d'arrêter si vous ouvrez la Boîte Virtuelle GUI, et le type dans un DOS cmd session
boot2docker start
oustop
.Hôtes & Proxy: Windows => Boot2Docker => Conteneurs Docker
Le principal point à comprendre est que vous aurez besoin pour gérer 2 HÔTES:
(
%HOME%\.boot2docker\boot2docker.iso
=>.
%USERPROFILE%\VirtualBox VMs\boot2docker-vm\boot2docker-vm.vmdk
),En terme de proxy, ce qui signifie:
HTTP_PROXY
,HTTPS_PROXY
etNO_PROXY
variable d'environnement (vous les avez probablement déjà, et ils peuvent être utilisés par exemple par la Virtual Box pour détecter les nouvelles versions de Virtual Box)http_proxy
,https_proxy
etno_proxy
(pas le cas, les minuscules dans l'environnement Linux) pour:docker search nginx
).Si cela n'est pas, la prochaine
docker pull
, vous obtiendrez undial tcp: lookup index.docker.io: no such host
.C'est situé dans un nouveau fichier
/var/lib/boot2docker/profile
: il estprofile
, pas.profile
./home/docker/.ashrc
), si vous avez besoin d'exécuter une autre commande (autres que docker) qui demandent l'accès à internet)RUN apt-get update
, vous obtiendrez un, par exemple,Could not resolve 'http.debian.net'
).Cela signifie que vous devez ajouter les lignes
ENV http_proxy http://...
en premier, avant touteRUN
de commande nécessitant l'accès à internet.Une bonne
no_proxy
est:(avec '
.company
' le nom de domaine de votre entreprise, pour les sites internes)La persistance des données? Utiliser le dossier de partage
L'autre point à comprendre est que boot2docker utilise Tiny Core, un... minuscule distribution Linux (l' .un fichier iso est seulement de 26 MO).
Et Tiny Core offre aucune persistance (à l'exception de quelques dossiers techniques): si vous modifiez votre
~/.ashrc
avec tous vos réglages préférés et d'alias... la prochaineboot2docker stop /boot2docker start
permettra de restaurer une vierges environnement Linux, avec votre modification allé.Vous devez vous assurer que le VirtualBox a la Oracle_VM_VirtualBox_Extension_Pack téléchargés et ajoutés dans la Boîte Virtuelle /Fichier /Paramètres /Extension /ajouter le
Oracle_VM_VirtualBox_Extension_Pack-4.x.yy-zzzzz.vbox-extpack
fichier).Comme documenté dans boot2docker, vous aurez accès (à partir de votre Minuscule Noyau de la session ssh) à
/c/Users/<yourLogin>
(c'est à dire le%USERPROFILE%
est partagée par Virtual Box)La redirection de Port? Pour le conteneur et pour VirtualBox VM
Le dernier point à comprendre est que aucun port n'est exporté par défaut:
-p 80:80
par exemple afin d'exposer le port 80 du récipient vers le port 80 de la session Linux)The connection was reset
".Pour le premier point,
docker run -it --rm --name my-apache-app -v "$PWD":/usr/local/apache2/htdocs/httpd:2.4
ne fonctionnera pas sans un-p 80:80
en elle.Pour le deuxième point, définir un alias
doskey vbm="c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" $*
, puis:- si la Boîte Virtuelle '
boot2docker-vm
" n'est pas encore commencé, utilisevbm modifyvm
- si la Boîte Virtuelle '
boot2docker-vm
' est déjà commencé, utilisevbm controlvm
Généralement, si je me rends compte, au cours d'une boot2docker session, que le port 80 n'est pas accessible à partir de Windows:
Alors, et alors seulement, je peux accéder à http://127.0.0.1
Réglages permanents: copié sur le panneau de service et docker compte
Afin d'utiliser
boot2docker
facilement:%USERPROFILE%\prog\b2d
.profile
en elle (directement dans Windows, dans%USERPROFILE%\prog\b2d
), avec votre paramètres et alias.Par exemple (j'ai modifié l'original
/home/docker/.ashrc
):(192.168.59.103 est généralement l'adresse ip renvoyée par
boot2docker ip
)Tout mettre ensemble pour commencer une boot2docker session:
b2d.bat
b2d.bat
script dans votre%PATH%
qui:boot2docker
docker
service (qui est redémarré) et pour la/home/docker
compte d'utilisateur.Qui est:
Afin d'entrer dans une nouvelle boot2docker session, avec vos paramètres définis exactement que vous le souhaitez, il suffit de taper:
Et vous êtes bon pour aller:
Résultat final:
docker search xxx
travailler (elle aura accès à internet)docker build
travailler (elle aura accès à internet si leENV http_proxy
directives sont là)%USERPROFILE%\prog\b2d
peut être modifiée à partir de~/b2d
.Ou vous pouvez écrire et modifier ces fichiers (à l'instar de certains Dockerfile) à partir de votre session Windows, à l'aide de votre éditeur de texte favori (au lieu de
vi
)Et tout cela, derrière un pare-feu d'entreprise.
Bonus: http uniquement
Tuan ajoute dans les commentaires:
boot2docker ssh
,tuer le docker processus et
export http_proxy=http://proxy.com
, puisdocker -d --insercure-registry docker.io
env.bat
paramètres. Quelle est la version de docker utilisez-vous?https://index.docker.io
contenu mais pas de menu fixe.boot2docker ssh
, de tuer le panneau de processus et de définir le proxyexport http_proxy=http://proxy.com
, puis commencer à docker avecdocker -d --insercure-registry docker.io
dmssh.bat
: github.com/VonC/b2d/blob/.... Rien copié/modifié dans /var/lib/boot2docker est conservé par le TinyCore OS. Par exemple, la définition de la propriété intellectuelle est fait avecdmvbf.bat
: github.com/VonC/b2d/blob/.... Ce dernier script est exécuté qu'une seule fois. Le premier script est exécuté à chaque fois que l'on veut ouvrir une nouvelle session ssh pour le menu fixe-machine./var/lib/boot2docker
. Persister une modification, vous créez/var/lib/boot2docker/bootsync.sh
, qui est un fichier exécuté par TinyCore (si elle existe). Dans ce fichier, le script de la modification que vous voulez voir à chaque nouveau démarrage de l'docker-machine. La création debootsync.sh
est ce que je fais dans la ligne 19: github.com/VonC/b2d/blob/...bootsync.sh
afin de l'exécuter à chaque démarrage de l'docker-machine.--engine-env
option: voirdmcv.bat
: github.com/VonC/b2d/blob/.... La résultante de docker-machine par procuration dans ses/var/lib/boot2docker/profile
fichier. De façon permanente.