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:
1 | apt install ssh |
Después de instalado ssh
1 | 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:
1 | apt install polipo |
Dejamos la configuración de polipo de forma tal:
1 | cat /etc/polipo/config |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 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:
1 | mkdir -p /etc/systemd/system/docker.service.d |
Y dentro:
1 | cat /etc/systemd/system/docker.service.d/http-proxy.conf |
1 2 | [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.
1 2 | /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:
1 | cat /etc/docker/daemon.json |
1 2 3 | { "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:
1 | cat /etc/docker/daemon.json |
1 2 3 4 | { "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:
1 | 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.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Urvanov_Syntax_Highlighter_Plugin::pre_comment_text(), 2 passed in /var/www/html/sysadminsdecuba/wp-includes/class-wp-hook.php on line 324 and exactly 3 expected in /var/www/html/sysadminsdecuba/wp-content/plugins/urvanov-syntax-highlighter/class-urvanov-syntax-highlighter-plugin.php:742 Stack trace: #0 /var/www/html/sysadminsdecuba/wp-includes/class-wp-hook.php(324): Urvanov_Syntax_Highlighter_Plugin::pre_comment_text() #1 /var/www/html/sysadminsdecuba/wp-includes/plugin.php(205): WP_Hook->apply_filters() #2 /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent.php(203): apply_filters() #3 /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent.php(174): wpua_display_comment() #4 /var/www/html/sysadminsdecuba/wp-includes/class-wp-hook.php(326): wpua_useragent() #5 /var/www/html/sysadminsdecuba/wp-includes/plugin.php(205): WP_Hook->apply_filters() #6 /var/www/html/sysadminsdecuba/wp-includes/comment-template.php(1082): apply_filters() #7 /var/www/html/sysadminsdecuba/wp-content/themes/mh-magazine-lite/includes/mh-custom-functions.php(270): comment_text() #8 /var/www/html/sysadminsdecuba/wp-includes/class-walker-comment.php(183): mh_magazine_lite_comments() #9 /var/www/html/sysadminsdecuba/wp-includes/class-wp-walker.php(147): Walker_Comment->start_el() #10 /var/www/html/sysadminsdecuba/wp-includes/class-walker-comment.php(139): Walker->display_element() #11 /var/www/html/sysadminsdecuba/wp-includes/class-wp-walker.php(390): Walker_Comment->display_element() #12 /var/www/html/sysadminsdecuba/wp-includes/comment-template.php(2390): Walker->paged_walk() #13 /var/www/html/sysadminsdecuba/wp-content/themes/mh-magazine-lite/comments.php(16): wp_list_comments() #14 /var/www/html/sysadminsdecuba/wp-includes/comment-template.php(1617): require('...') #15 /var/www/html/sysadminsdecuba/wp-content/themes/mh-magazine-lite/single.php(8): comments_template() #16 /var/www/html/sysadminsdecuba/wp-includes/template-loader.php(106): include('...') #17 /var/www/html/sysadminsdecuba/wp-blog-header.php(19): require_once('...') #18 /var/www/html/sysadminsdecuba/index.php(17): require('...') #19 {main} thrown in /var/www/html/sysadminsdecuba/wp-content/plugins/urvanov-syntax-highlighter/class-urvanov-syntax-highlighter-plugin.php on line 742