Empezamos.
Qué es un contenedor docker
No es una máquina virtual. Y punto. Aunque lo parezca. Es un proceso que corre directamente en tu máquina. Lo puedes ver con un "ps". Ese proceso crea un entorno que contiene todo lo necesario para dar la apariencia de que es otra máquina. Está basado en LXC que es un sistema de contenedores ligeros que emplean muchos proveedores de hosting. Cuanto antes te convenzas de que no es una máquina virtual antes empezarás a disfrutar de lo que sí es.
Otra cosa que debes saber es que las imágenes de los contenedores docker se construyen unas sobre otras. Abajo estaría la más básica y conforme vamos subiendo podemos ir perfeccionando un contenedor para que cumpla con el rol que queramos. Es como hacer plantillas.
Vamos a suponer que tienes un equipo con Linux. Ubuntu por ejemplo. Instalamos el paquete de docker. Ojo que ya existe un paquete con el nombre "docker" que es una bandena KDE. El que nos interesa se llama "docker.io" en ubuntu.
sudo apt-get install docker.io
Mi primer docker
Vamos a arrancar un primer contenedor con un ubuntu limpio. Sin pensarlo. A lo loco. Los ejemplos que pongo aquí los puedes ejecutar sin peligro en tu equipo.
$ sudo docker run --name osadmin-ubuntu ubuntu Unable to find image 'ubuntu:latest' locally latest: Pulling from ubuntu 454970bd163b: Pull complete 38112156678d: Pull complete 4e1f7c524148: Pull complete 56063ad57855: Pull complete ubuntu:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. Digest: sha256:4e85ebe01d056b43955250bbac22bdb8734271122e3c78d21e55ee235fc6802d Status: Downloaded newer image for ubuntu:latest
Analicemos qué ha pasado: hemos querido arrancar un contenedor al que llamaremos "osadmin-ubuntu" y que está basado en la imagen de contenedor docker "ubuntu". Puesto que no teníamos ninguna imagen llamada "ubuntu" se la ha descargado de un repositorio (llamado "registry"). Luego lo ha arrancado y está en algún lugar corriendo. Comprobamos.
Comprobamos que existe la instancia "osadmin-ubuntu".
$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c98e2697c8fa ubuntu:latest "/bin/bash" 7 minutes ago Exited (0) 7 minutes ago osadmin-ubuntuVemos que está detenida. Esto es porque docker solo tiene sentido como proceso. Es decir, si no le encargas que haga nada, no hace nada. Se muere. Vamos a eliminarla y la volvemos a crear haciendo una espera de 120 segundos.
Primero la eliminamos
$ sudo docker rm osadmin-ubuntu
¿ Qué hemos eliminado ? La instancia llamada "osadmin-ubuntu".
¿ Hemos eliminado la imagen docker ubuntu ? La imagen está en un repositorio local y debe seguir allí. Lo vemos.
$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest 56063ad57855 5 days ago 188 MBObserva que nuestro repositorio todavía tiene la copia de la imagen "ubuntu" creada hace 5 dias de la imagen del contenedor.
El siguiente comando creará de nuevo el contenedor pero hará un sleep de 120 segundos.
$ sudo docker run -d --name osadmin-ubuntu ubuntu /bin/bash -c "sleep 120" da6eda60ad16cfb8e1d6843fa6030ba191cc051900947052c9f07e332fcaeaa0 $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES da6eda60ad16 ubuntu:latest "/bin/bash -c 'sleep 6 seconds ago Up 5 seconds osadmin-ubuntu
Pasados 120 segundos se morirá.
Eliminar imágenes
Si queremos purgar nuestro depósito local de imágenes, es sencillo. El ejemplo nos permite eliminar la plantilla "ubuntu". Se supone que no hay nadie usándola. Si es así no nos deja eliminarla a no ser que hagamos un "-f".
$ sudo docker rmi ubuntu Untagged: ubuntu:latest Deleted: 1997914a7c23c0f2f77ba6570032f8e74292224d24b9e13228244561ac304020 Deleted: 1b1999356dda739315854eb57a482e92405660e84fd71b6c59f777377b5bd2dc Deleted: 13a8e55f2d20aee3c842842ebadcbda69347bb657a4cde1b851719b8f896c596 Deleted: 8aa2fc7185e20bacda32d815eaae32cbc1c0457dc160ed5b3995ab79a8c7fd98
No ha estado mal como aperitivo.
No hay comentarios:
Publicar un comentario