Volver al blog

Acceder a docker.com desde países bloqueados

docker_facebook_share

Puede que, si intentas entrar a docker.com, a hacer uso de la documentación o bajarte imágenes, te detenga una linda imágen como esta:

Si eres de los que está en ese caso, ponte en sintonía con este post. Lo que vamos a hacer es colarnos por un túnel que se encuentra en un hosting, "outside", jejeje.

Así que... Requisitos mínimos indispensables:
0- Internet
1- Hosting
2- PC con Linux
3- Docker, instalado en dicha PC
4- Deseos de aprender

Teniendo todo lo anterior, lo primero es:

apt install ssh

Después de instalado ssh

ssh -4p 443 -D 127.0.0.1:1080 usuario@hosting_outside.com

Debemos poner la clave del usuario@hosting_outside.com para continuar.

Nota: Esto se puede mejorar haciendo un script que inicie con el sistema, pero eso, ahora mismo, no es necesario para este proceso.

Ahora necesitaremos el "polipo" para redirigir todo el tráfico y las peticiones que haremos a docker.com:

apt install polipo

Dejamos la configuración de polipo de forma tal:

cat /etc/polipo/config
# This file only needs to list configuration variables that deviate
# from the default values. See /usr/share/doc/polipo/examples/config.sample
# and "polipo -v" for variables you can tweak and further information.

logSyslog = true
logFile = /var/log/polipo/polipo.log

proxyAddress = "0.0.0.0" # IPv4 only
allowedClients = 127.0.0.1

cacheIsShared = false

# Uncomment this if you want to use a parent proxy:

# parentProxy = "squid.example.org:3128"

# Uncomment this if you want to use a parent SOCKS proxy:

socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5

Configurar navegador para proxy socks5 por el host 127.0.0.1 puerto 1080.

Ahora necesitamos hacerle unos tweaks a docker:

mkdir -p /etc/systemd/system/docker.service.d

Y dentro:

cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8123/" "NO_PROXY=localhost,127.0.0.1,github.com"

Hecho esto, sólo nos queda reiniciar docker y systemd.

/etc/init.d/docker restart
systemctl daemon-reload

Una vez terminado ya podemos empezar a pedir imágenes por consola o navegar directamente en la documentación de hub.docker.com.

Ahora bien, imagina que quieres bajar imágenes de otros hubs... Cómo hago eso?

Fácil, sólo debes configurar tu fichero de "registry", es decir:

cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry-1.docker.io"]
}

Donde, en la variable registry-mirrors podemos usar:

  • http://havanacontainers.com
  • https://registry.docker-cn.com
  • http://repo.docker.ir:5000

Quedando, por ejemplo:

cat /etc/docker/daemon.json
{
"insecure-registries" : [ "havanacontainers.com"],
"registry-mirrors": ["http://havanacontainers.com"]
}

Ahora, si eres de los que no les gusta embarrarse con el código, puedes ejecutar docker de la siguiente forma:

dockerd --registry-mirror=http://havanacontainers.com

Y listo!!!

Este procedimiento está probado en Deepin, Debian y Ubuntu.

Por lo que sólo me queda decirles que, prueben... Ojalá les sirva.

Suscríbete · Newsletter

Mantente al día, cada semana

Artículos prácticos sobre Linux, redes, seguridad, virtualización y la nube — escritos por sysadmins cubanos.

  • Guías y tutoriales de administración de sistemas
  • Nuevos artículos sobre servidores, redes y nube
  • Sin spam, cancela cuando quieras

Respetamos tu bandeja de entrada. Cancela con un clic.

Patrocinado por SYSCU

¿Tu infraestructura en la nube te cuesta de más?

SYSCU optimiza tu nube de punta a punta — FinOps, DevOps & CI/CD, migraciones a AWS, seguridad y observabilidad. Equipo 100 % senior que reduce tu factura hasta un 40 % y acelera tus despliegues en semanas.

Nuevo · BetaSYSCU Atlas Insight — la plataforma FinOps que convierte tu gasto AWS en decisiones: visibilidad multi-cuenta, recomendaciones automáticas y alertas de anomalías.

No comments yet