• Lun - Vie : 08:00 - 18:00

Mi Blog

Cómo copiar imágenes Docker a otro equipo

Cómo copiar imágenes Docker a otro equipo

(Tiempo estimado: 6 - 12 minutos)

Copiar imágenes de Docker entre equipos puede resultar pesado si se hace uso de Docker Hub o si tenemos alguna limitación como puede ser no disponer de Internet en el equipo donde queremos tener la imagen. Para ello, os enseñaré paso a paso como se puede hacer una copia, transferencia y la carga de una imagen remota de Docker.

Seguid leyendo y os enseñaré a copiar imágenes Docker entre equipos de la forma mas rápida que existe...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 HAZ CLICK AHORA 🔥

 

 

¿QUÉ ES DOCKER?

Dos conceptos fundamentales a la hora de entender Docker son: los contenedores y las imágenes.

Docker encapsula las aplicaciones en contenedores. Un contenedor es el equivalente a una máquina virtual de la virtualización clásica, pero mucho más liviana porque utiliza recursos del sistema operativo del host. Las aplicaciones de cada contenedor "ven" un sistema operativo, que puede ser diferente en cada contenedor, pero quien realiza el trabajo es el sistema operativo común que hay por debajo.

Docker crea los contenedores a partir de imágenes. Las imágenes son una especie de plantillas que contienen como mínimo todo el software que necesita la aplicación para ponerse en marcha. Las imágenes se pueden crear a partir de otras imágenes más básicas incluyendo software adicional en forma de capas. Todos los contenedores creados a partir de una imagen contienen el mismo software, aunque en el momento de su creación se pueden personalizar algunos detalles.

 

 

Copiar imágenes Docker entre equipos es realmente sencillo

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con GNU/Linux y Docker instalado
  • Conexión a Internet (o al menos red LAN)

 

 

2.- FORMAS DE COPIAR LA IMAGEN DE DOCKER

Existen diferentes formas de copiar una imagen Docker desde un equipo a otro equipo remoto, una de ellas es subir la imagen a Docker Hub y posteriormente descargarla desde el equipo remoto. Ester proceso es algo mas lento y laborioso que el que vamos a ver en este breve y sencillo tutorial.

Veremos como guardar, transferir y cargar la imagen a otro equipo remoto con apenas 3 pasos.

 

  

3.- COPIAR LA IMAGEN DOCKER DESDE UN EQUIPO A OTRO

Con el siguiente comando podremos ver el listado de imágenes de Docker que tenemos descargadas en el equipo "origen". La imagen que vamos a copiar es la imagen llamada Debian, pero podremos copiar y transferir cualquiera de ellas:

raul@debian:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c919045c4c2b 5 weeks ago 142MB
debian latest d40157244907 5 weeks ago 124MB
portainer/portainer-ce latest ed396c816a75 8 weeks ago 280MB

 

 

Para realizar el guardado de la imagen debian, haremos uso del comando docker save y guardaremos la imagen en un fichero tar para posteriormente transferirlo al equipo remoto:

raul@debian:~$ sudo docker save debian > $HOME/debian_image.tar

 

 

Antes de transferir el fichero, debemos saber la dirección IP o el nombre de dominio (FQDN) para poder transferir la imagen. Para ello, en el equipo remoto debemos ejecutar el siguiente comando y veremos que la IP del equipo remoto es la 192.168.1.84:

raul@debian-backup:~$ /sbin/ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:b0:f0:00:e4 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.84 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a00:27ff:fe46:a2d9 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:46:a2:d9 txqueuelen 1000 (Ethernet)
RX packets 4692 bytes 3548837 (3.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2157 bytes 264185 (257.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 66 bytes 3300 (3.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 66 bytes 3300 (3.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

 

Si al anterior comando no funciona, podemos probar el siguiente y veremos que la IP es la misma:

raul@debian-backup:~$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:46:a2:d9 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.84/24 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft 41508sec preferred_lft 41508sec
inet6 fe80::a00:27ff:fe46:a2d9/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:b0:f0:00:e4 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever

 

 

Para realizar el copiado, podemos hacerlo de muchas formas, sftp, ftp, scp .... La mejor forma entre equipos GNU/Linux es a través de SCP. Para ello, ejecutaremos el siguiente comando para transferir la imagen debian_image.tar alojada en el servidor principal Debian hasta el directorio /tmp/ del servidor remoto debian-backup:

raul@debian:~$ scp $HOME/debian_image.tar 192.168.1.84:/tmp/
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.'s password:
debian_image.tar 100% 123MB 143.4MB/s 00:00

 

 

Una vez que la transferencia ha finalizado, en el equipo remoto deberemos cargar la imagen con la ayuda del comando docker load:

raul@debian-backup:~$ sudo docker load -i /tmp/debian_image.tar
89fda00479fc: Loading layer [==================================================>] 129.1MB/129.1MB
Loaded image: debian:latest

 

 

Si listamos las imágenes disponibles en el equipo remoto veremos que tenemos la imagen debian transferida desde el otro servidor:

raul@debian-backup:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian latest d40157244907 5 weeks ago 124MB

 

 

Para probar la imagen, crearemos un contenedor de dicha imagen para ver que funciona correctamente después de haberlo transferido:

raul@debian-backup:~$ sudo docker run -it debian
root@667a42d5277e:/# cat /etc/issue
Debian GNU/Linux 11 \n \l

root@667a42d5277e:/# uname -a
Linux 667a42d5277e 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux

 

 

Como podéis ver, transferir imágenes de Docker entre equipos es sumamente sencillo y rápido.

 

 

ENJOY!


⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 HAZ CLICK AHORA 🔥
Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

No tienes permisos para escribir comentarios. Debes autenticarte con Facebook, Linkedin, Twitter o Google.

VIP RPF

Apúntate Gratis

Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más.... ¡Muy Pronto!
  • Lun - Vie : 08:00 - 18:00