puedo puede permanentemente opciones las desactivar defender cual configuracion computadora cambiar algunas activar windows git proxy docker

puede - ¿Cómo hacer que Docker se ejecute en un sistema Windows detrás de un firewall corporativo?



firewall de windows defender no puede cambiar algunas de las opciones de configuracion (1)

Windows Boot2Docker detrás del proxy corporativo

(Contexto: marzo de 2015, Windows 7, detrás del proxy corporativo)

TLDR; ver el proyecto GitHub VonC/b2d :

Clonarlo y:

  • configure ../env.bat siguiendo el env.bat.template ,
  • agregue el alias que desea en el archivo '' profile '',
  • ejecuta senv.bat luego b2d.bat .

Entonces se encuentra en un entorno boot2docker debidamente personalizado con:

  • una sesión de SSH capaz de acceder a Internet detrás del proxy corporativo cuando escribe la docker search/pull .
  • Los archivos Docker pueden acceder a Internet detrás del proxy corporativo cuando hacen una apt-get update/install y usted docker build una docker build .

Instalación y primeros pasos

Si usted es el administrador de su estación de trabajo, puede ejecutar la instalación de boot2docker en su Windows .
Actualmente viene con:

  • Boot2Docker 1.5.0 (Docker v1.5.0, Linux v3.18.5)
  • Boot2Docker Management Tool v1.5.0
  • VirtualBox v4.3.20-r96997
  • msysGit v1.9.5-preview20141217

Luego, una vez instalado:

  • agregue c:/path/to/Boot2Docker For Windows/ en su %PATH%
  • (una vez): boot2docker init
  • boot2docker start
  • boot2docker ssh
  • escriba exit para salir de la sesión ssh y boot2docker ssh para volver a entrar: se conserva el historial de comandos que acaba de escribir.
  • si quiere cerrar la máquina virtual, boot2docker stop

De hecho, puede ver que la VM se inicia o se detiene si abre la GUI de Virtual Box y escribe una sesión de cmd de DOS boot2docker start o stop .

Hosts y Proxy: Windows => Boot2Docker => Docker Contenedores

El principal punto a entender es que necesitarás administrar 2 HOSTS :

  • su estación de trabajo de Windows es el host del Linux Tiny Core ejecutado por VirtualBox para que pueda definir y ejecutar contenedores
    ( %HOME%/.boot2docker/boot2docker.iso =>
    . %USERPROFILE%/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk ),
  • Tu boot2docker Linux Tiny Core aloja tus contenedores que ejecutarás.

En términos de proxy , eso significa:

  • Su Windows Host debe tener configurada su variable de entorno HTTP_PROXY , HTTPS_PROXY y NO_PROXY (probablemente ya las tenga, y pueden usarse, por ejemplo, en Virtual Box para detectar nuevas versiones de Virtual Box)
  • Su Tiny Core Host debe haber configurado http_proxy , https_proxy y no_proxy (tenga en cuenta el caso, minúsculas en el entorno Linux) para:
    • el servicio de acoplador para poder consultar / cargar imágenes (por ejemplo: docker search nginx ).
      Si no se establece, la siguiente docker pull le proporcionará un dial tcp: lookup index.docker.io: no such host .
      Esto se establece en un nuevo archivo /var/lib/boot2docker/profile : es profile , not .profile .
    • la cuenta /home/docker/.ashrc (que se establecerá en /home/docker/.ashrc ), si necesita ejecutar cualquier otro comando (que no sea Docker) que requeriría acceso a Internet)
    • cualquier archivo Docker que usted cree (o la próxima RUN apt-get update obtendrá un, por ejemplo, Could not resolve ''http.debian.net'' ).
      Eso significa que debe agregar las líneas ENV http_proxy http://... primero, antes de ENV http_proxy http://... cualquier comando de ENV http_proxy http://... requiera acceso a Internet.

Un buen no_proxy para establecer es:

.company,.sock,localhost,127.0.0.1,::1,192.168.59.103

(con '' .company '' el nombre de dominio de su empresa, para los sitios internos)

Persistencia de datos? Usa el uso compartido de carpetas

El otro punto a entender es que boot2docker usa Tiny Core , una ... pequeña distribución de Linux (el archivo .iso tiene solo 26 MB).
Y Tiny Core no ofrece persistencia (excepto algunas carpetas técnicas): si modifica su ~/.ashrc con todos sus ajustes preferidos y alias ... el siguiente boot2docker stop / boot2docker start restaurará un entorno Linux prístino , con su modificación ido .

Debe asegurarse de que VirtualBox haya descargado y agregado Oracle_VM_VirtualBox_Extension_Pack en el cuadro virtual / Archivo / Configuración / Extensión / agregue el Oracle_VM_VirtualBox_Extension_Pack-4.x.yy-zzzzz.vbox-extpack ).

Tal como se documenta en boot2docker , tendrá acceso (desde su sesión Tiny Core ssh) a /c/Users/<yourLogin> (es decir, el %USERPROFILE% es compartido por Virtual Box)

Redirección de puertos? Para contenedor y para VirtualBox VM

El último punto a entender es que ningún puerto se exporta por defecto :

  • sus puertos de contenedor no son visibles desde su host Tiny Core (debe usar -p 80:80 por ejemplo para exponer el puerto 80 del contenedor al puerto 80 de la sesión de Linux)
  • sus puertos Tiny Cort no se exportan desde su Virtual Box VM de forma predeterminada : incluso si su contenedor es visible desde Tiny Core, su navegador de Windows no lo verá: http://127.0.0.1 no funcionará " The connection was reset ".

Para el primer punto, docker run -it --rm --name my-apache-app -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4 no funcionará sin -p 80:80 en eso.

Para el segundo punto, defina un alias doskey vbm="c:/Program Files/Oracle/VirtualBox/VBoxManage.exe" $* , y luego: - si el cuadro virtual '' boot2docker-vm '' aún no se ha iniciado, usa vbm modifyvm - si el cuadro virtual '' boot2docker-vm '' ya está iniciado, usa vbm controlvm

Normalmente, si me doy cuenta, durante una sesión de boot2docker, que el puerto 80 no es accesible desde Windows:

vbm controlvm "boot2docker-vm" natpf1 "tcp-port80,tcp,,80,,80"; vbm controlvm "boot2docker-vm" natpf1 "udp-port80,udp,,80,,80";

Entonces, y solo entonces, puedo acceder a http://127.0.0.1

Configuraciones persistentes: copiado al servicio del acoplador y cuenta del acoplador

Para usar boot2docker fácilmente:

  • cree en Windows una carpeta %USERPROFILE%/prog/b2d
  • agregue un .profile en él (directamente en Windows, en %USERPROFILE%/prog/b2d ), con su configuración y alias.

Por ejemplo (modifiqué el /home/docker/.ashrc original):

# ~/.ashrc: Executed by SHells. # . /etc/init.d/tc-functions if [ -n "$DISPLAY" ] then `which editor >/dev/null` && EDITOR=editor || EDITOR=vi else EDITOR=vi fi export EDITOR # Alias definitions. # alias df=''df -h'' alias du=''du -h'' alias ls=''ls -p'' alias ll=''ls -l'' alias la=''ls -la'' alias d=''dmenu_run &'' alias ce=''cd /etc/sysconfig/tcedir'' export HTTP_PROXY=http://<user>:<pwd>@proxy.company:80 export HTTPS_PROXY=http://<user>:<pwd>@proxy.company:80 export NO_PROXY=.company,.sock,localhost,127.0.0.1,::1,192.168.59.103 export http_proxy=http://<user>:<password>@proxy.company:80 export https_proxy=http://<user>:<password>@proxy.company:80 export no_proxy=.company,.sock,localhost,127.0.0.1,::1,192.168.59.103 alias l=''ls -alrt'' alias h=history alias cdd=''cd /c/Users/<user>/prog/b2d'' ln -fs /c/Users/<user>/prog/b2d /home/docker

(192.168.59.103 suele ser la IP devuelta por boot2docker ip )

Poniendo todo junto para comenzar una sesión b2d.bat : b2d.bat

  • crea y agrega un script b2d.bat en tu %PATH% que:
    • iniciar boot2docker
    • copie el perfil correcto, tanto para el servicio docker (que se reinicia) como para la cuenta de usuario /home/docker .
    • iniciar una sesión interactiva ssh

Es decir:

doskey vbm="c:/Program Files/Oracle/VirtualBox/VBoxManage.exe" $* boot2docker start boot2docker ssh sudo cp -f /c/Users/<user>/prog/b2d/.profile /var/lib/boot2docker/profile boot2docker ssh sudo /etc/init.d/docker restart boot2docker ssh cp -f /c/Users/<user>/prog/b2d/.profile .ashrc boot2docker ssh

Para ingresar a una nueva sesión de boot2docker, con su configuración definida exactamente como lo desee, simplemente escriba:

b2d

Y eres bueno para ir:

Resultado final:

  • una docker search xxx funcionará (accederá a internet)
  • cualquier ENV http_proxy funcionará (accederá a Internet si las directivas ENV http_proxy están allí)
  • cualquier archivo de Windows de %USERPROFILE%/prog/b2d se puede modificar desde ~/b2d .
    O bien, puede escribir y modificar esos mismos archivos (como algunos Dockerfile) directamente desde su sesión de Windows, usando su editor favorito (en lugar de vi )

Y todo esto, detrás de un firewall corporativo.

Bonificación: solo http

Tuan agrega en los comentarios :

Tal vez el proxy de mi empresa no permite https. Aquí está mi solución:

  • boot2docker ssh ,
    matar el proceso de docker y
  • establezca el proxy de export http_proxy=http://proxy.com , luego
  • inicia la docker -d --insercure-registry docker.io acoplable con docker -d --insercure-registry docker.io

Estoy intentando obtener una instalación docker funcional siguiendo este tutorial: http://docs.docker.io/en/latest/installation/windows/

Hasta ahora, obtuve la VM ejecutándose con un repositorio descargado manualmente (seguido del github-link y descargado como zip, porque "git clone" no funcionó detrás de mi proxy corporativo, incluso después de configurar el proxy con "git conf --global http .proxy ... "- me siguió pidiendo la autentificación 407, aunque ingresé a mi usuario y PW). Ahora estoy en el estado en que debería usar "docker run busybox echo hello world" (Sección "Running Docker"). Cuando hago esto, primero me dicen que Docker no está instalado (como se muestra en la parte inferior del tutorial), y luego, después de obtenerlo con apt-get install docker, aparece "Segmentation Fault o error crítico encontrado". núcleo y abortar ".

¿Qué hacer ahora? ¿Esto es porque no he usado git clone o hay algún problema con la instalación del acoplador? Leí en alguna parte, que apt-get install docker no instala el docker que quiero, pero algo de GNOME-Tool, ¿puedo especificar mi apt-request para obtener la herramienta correcta?