Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El objeto de este primer capítulo del tutorial sobre Docker, es por un lado explicarte que
son los contenedores. Y por otro lado, y creo que mas importante, porque necesitas
conocer, usar y sacar provecho a la tecnología de contenedores. Sin embargo, es
necesario unas primeras pinceladas sobre los contenedores Linux antes de que yo sea
capaz de explicarte porque esa tecnología es imprescindible para ti, y que tarde o
temprano te cambiará la forma en la que te relacionas con las aplicaciones.
En alguna ocasión he escrito algún artículo que toca de forma tangencial los
contenedores, por ejemplo, en el tutorial de scripts en Bash. En el primer capítulo del
tutorial, te indico una solución para comenzar a crear tus primeros scripts, sin miedo a
romper el sistema.
1/6
Docker
Como te he comentado en la introducción, antes de comentarte las ventajas de trabajar
con contenedores, y porque esta es una solución que debes implantar en tu día a día, es
mejor que te explique que es esto de los contenedores.
Conceptos básicos
Imágenes
Una imagen es un paquete, en el que se encuentra una aplicación o servicio y todo lo
necesario (código, ejecutables, librerías, configuración, etc) para que esta aplicación
pueda funcionar.
Contenedores
2/6
Como te explicaba en el punto anterior, el contenedor no es mas que una instancia de
esa imagen que tiene todo lo necesario para nuestra aplicación. Pero, el contenedor
tiene una característica realmente interesante. El contenedor utiliza y comparte el
sistema operativo de la máquina en la que se está ejecutando, con otras aplicaciones y
por supuesto, con otros contenedores.
Esto es precisamente lo que lo diferencia de una máquina virtual. Las máquinas virtuales
levantan un sistema operativo completo, mientras que los contenedores tienen lo
mínimo imprescindible para el funcionamiento de la aplicación o servicio.
Imágenes y contenedores
Por intentar aclarar mas la diferencia entre imagen y contenedor, quiero ponerte un
paralelismo. El archivo ejecutable de una aplicación cualquiera que tengas instalada en
tu equipo se corresponde con la imagen, como te he comentado anteriormente. Por otro
lado, hay aplicaciones que permiten tener en funcionamiento varias instancias.
Cada una de estas instancias se corresponde con un contenedor.
Docker
En esto de los contenedores, además de Docker, tienes otras alternativas como LXC
(LinuX Containers), de la cual deriva Docker o LXD, por ejemplo. ¿Porque Docker? Docker
es mas como un gestor de paquetes tipo Snap, Flatpack o AppImage, mientras que LXC es
mas como una máquina virtual mas ligera, en el sentido de que comparte el sistema
operativo con la máquina en la que corre. Esto es a grandes rasgos.
La razón de este tutorial sobre Docker, es precisamente la facilidad que te aporta esta
tecnología para poner en funcionamiento una aplicación en una máquina,
asegurándote de que va a funcionar. Y va a funcionar porque todas las dependencias
que necesita esa aplicación van incluidas en el contenedor. Esto te permite llevar una
aplicación de una máquina a otra con garantías.
Instalando
Existen dos versiones de Docker. En particular me centraré en la versión Community,
Dentro de esta versión puedes encontrar tres canales de actualización, como en casi
cualquier aplicación que se precie,
Disco 19.04
Cosmic 18.10
Bionic 18.04 (LTS)
Xenial 16.04 (LTS)
Post instalación
Permisos
Una vez ya tienes instalado docker conviene realizar algunos pasos adicionales para tu
propia comodidad. Lo primero es que para evitar tener que ejecutar docker con
derechos de administrador, tienes que añadir a tu usuario al grupo docker. Para ello,
simplemente ejecuta la siguiente instrucción,
4/6
Si no tienes muy claro esto de los grupos, te recomiendo el artículo sobre gestión de
usuarios y grupos en Linux y el artículo sobre propietarios y permisos del tutorial sobre
el terminal.
Comprobaciones
Ahora, ya estás en disposición de ver la versión de docker que has instalado. Para ello,
ejecuta la siguiente instrucción,
$ docker -v
Docker version 18.09.5, build e8ff056
1. El cliente de docker conecta con el demonio que está corriendo en segundo plano.
2. El demonio, descarga la imagen hello-world de Docker Hub .
3. De nuevo, el demonio entra en acción y crea un nuevo contenedor de esa imagen
recién descargada, y se se ejecuta el proceso, lo que genera la salida que has visto
anteriormente.
4. Por último, el demonio redirige la salida al cliente de Docker que la envía al
terminal.
5/6
En el interior de un contenedor
Si quieres, todavía puedes dar un paso mas. Puedes puedes meterte en el interior de un
contenedor, y echar un vistazo. De esta manera puedes saber como es un contenedor por
dentro. Verás que no hay nada extraño, que todo es mas o menos igual.
No te preocupes, que en los siguientes capítulos del tutorial ya verás que es todo esto.
Más información
Docker
6/6