Este singular título se me ocurre debido a los trabajos que pasamos los cubanos al querer usar los servicios de Docker. Aunque ya existe un tutorial de nuestro colega @Koratsuki este incluye el uso de una VPS y saltarse las restricciones. En este tutorial pretendo que todo el proceso se haga usando espejos alternativos tanto para la instalación de Docker como para las descargas de las imágenes. Bueno comenzaremos con los requisitos que necesitamos:
1- Una conexión a internet (en este tutorial también les mostrare todo el proceso si estas detrás de un proxy padre)
2- Un PC con una distro Linux (Debian o Ubuntu) Nota: También se puede lograr virtualizado en un VM.
3- Conocimientos básicos y deseos de aprender.
Instalamos la distro de nuestra preferencia y seguido procedemos a modificar nuestro sources.list para agregar los repositorios alternos de Docker.
nano /etc/apt/sources.list [Ubuntu] Agregamos: deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable Alterno: deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu bionic stable [Debian} Agregamos: deb [arch=amd64] https://download.docker.com/linux/debian buster stable Alterno: deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian buster stable
Ahora les muestro como agregar las llaves del repositorio que lo pida.
[Ubuntu] curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - Alterno: curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | apt-key add - [Debian] curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - Alterno: curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | apt-key add -
Finalmente actualizamos nuestro sistema:
apt update apt upgrade
No es objetivo de este tutorial mostrarles como configurarle un proxy a los diferentes comandos que se usan aquí. Puede verlo en otros posts de este mismo Blog. Aquí solo les mostrare como usarlo con Docker. Una vez ya nuestro sistema totalmente actualizado, procedemos a instalar las dependencias necesarias para que corra Docker en nuestro sistema.
[Debian][Ubuntu] apt install apparmor-utils apt-transport-https avahi-daemon jq network-manager socat qrencode Instalar estos, aunque ya los tenga para asegurarse apt install curl net-tools ca-certificates software-properties-common dbus
Finalmente instalamos docker
apt install docker-ce docker-compose docker-ce-cli containerd.io
Ahora con nuestro docker ya instalado solo nos queda configurarlo para que use un mirror diferente al de dockerhub y así poder bajar las imágenes sin restricciones.
Crear en /etc/docker/ el fichero daemon.json nano /etc/docker/daemon.json Agregar el siguiente contenido. { "registry-mirrors": [ "https://rw21enj1.mirror.aliyuncs.com", "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com", "https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://1nj0zren.mirror.aliyuncs.com", "https://quay.io", "https://docker.mirrors.ustc.edu.cn", "http://f1361db2.m.daocloud.io", "https://registry.docker-cn.com" ] }
Si desea agregar un registro de mirror inseguro aquí les dejo el enlace de cómo hacerlo. Reinciamos para que se vean los cambios.
systemctl daemon-reload systemctl restart docker
Este paso a continuación es para aquellos que estas detras de un proxy padre y es opcional.
Crear la carpeta docker.service.d mkdir -p /etc/systemd/system/docker.service.d Creamos el fichero http-proxy.conf nano /etc/systemd/system/docker.service.d/http-proxy.conf Dentro agregamos: [Service] Environment="HTTP_PROXY=http://user:password@proxyip:port/" Environment="HTTPS_PROXY=http://user:password@proxyip:port/" Environment="NO_PROXY= hostname.example.com,localhost,127.0.0.1" Recargamos la config y reinciamos el servicio: systemctl daemon-reload systemctl restart docker
Ahora comprobaremos que todo está bien.
Usaremos el comando: docker info Nos dará una salida similar a la siguiente: Client: Debug Mode: false Server: Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 2 Server Version: 19.03.8 Storage Driver: overlay2 Backing Filesystem: <unknown> Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd init version: fec3683 Security Options: apparmor seccomp Profile: default Kernel Version: 4.15.0-96-generic Operating System: Ubuntu 18.04.4 LTS OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 1.946GiB Name: hassio ID: RHYE:4WP5:KGF3:35WJ:RSQL:5VTF:IX33:6NOI:N24W:OAJM:4UNP:LHVE Docker Root Dir: /var/lib/docker Debug Mode: false HTTP Proxy: http://proxyip:port/ No Proxy: localhost,127.0.0.1 Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: https://rw21enj1.mirror.aliyuncs.com/ https://dockerhub.azk8s.cn/ https://reg-mirror.qiniu.com/ https://hub-mirror.c.163.com/ https://docker.mirrors.ustc.edu.cn/ Live Restore Enabled: false WARNING: No swap limit support Aquí solo deben fijarse si les reconoce el proxy(si se lo pusieron) y los mirrors alternos(Registry Mirrors).
Ahora vamos a comprobar si funcionan los registros alternos de mirror:
Corremos el siguiente comando: docker run hello-world Nos mostrara la siguiente salida, donde notamos que como la imagen hello-world aun no está descargada (por eso no la encuentra localmente) procede a bajarla de uno de nuestros mirrors alternos Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
Ahora ya podemos bajar la imagen que necesitemos sin tener que leer el siguiente cartel:
Ahora como plus les mostrare como instalar portainer usando docker compose.
Como ya habíamos instalado docker-compose, crearemos el archivo docker-compose.yml en el que configuraremos el contenedor de portainer.
nano docker-compose.yml
Podemos crearlo en el directorio que queramos, yo lo he hecho en /etc/docker En su interior pondremos lo siguiente:
version: '3' services: portainer: image: portainer/portainer restart: always ports: - "9000:9000" command: -H unix:///var/run/docker.sock volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data volumes: portainer_data:
Con el archivo creado ejecutamos el comando docker-compose up -d lo que descargará el paquete de los mirrors alternos, creará el contendor y lo ejecutará.
docker-compose up -d Una vez terminado, y si todo ha ido bien, al poner en un navegador http://ip_docker:9000 deberíamos ver la interfaz de Portainer. Nos pedirá que creemos una contraseña para el usuario admin, la creamos y accedemos al Dashboard.
Les muestro a continuación algunos comandos útiles de Docker que deben conocer.
Corre una imagen de docker docker run Mostrar los container que están corriendo docker ps Mostrar las imágenes descargadas docker images Mostar información de la configuración de Docker docker info Traer una imagen docker pull Etiquetar una imagen docker tag
Mi intención no es mostrarle como trabajar con Docker sino como usarlo en cuba. Este tutorial se ira enriqueciendo a medida que me ayuden los colegas @Koratsuki y @aldrockhavana
Espero les sirva a todos.
Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…
La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…
Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…
Percona Monitoring and Management (PMM) es una herramienta de código abierto para la supervisión y…
Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…
Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…
View Comments
Para mi esta es la mejor opción
http://docker.ir/
Si la de los iranies es muy buena, pero como puedes ver lleva otro procedimiento hay q ponerlo como proxy y salir por el. De esta forma puedo agregar mas mirrors
Pues no funciona a lo cubano, a la hora de hacer curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - te da tu error 403
Ya lo arregle y puse los alternos tambien para el que no acceda a download.docker.com
Creo que en el paso "Crear en /etc/docker/ el fichero daemon.json..." faltan comas detrás de algunas líneas.
Ya arregaldo, es que habia sumado mas mirror y olvide eso..
gracias
alex out