GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Docker:Cómo usarlo de manera práctica - Parte 3

Parte 3:Creación de un Bloc de notas con contenedores de WordPress y DokuWiki

Prefacio

En la primera parte, hablamos sobre cómo funcionan los contenedores acoplables y cómo se diferencian de otras tecnologías de virtualización de software y, en la segunda parte, preparamos nuestro sistema para administrar los contenedores acoplables.

En esta parte, comenzaremos a usar imágenes de Docker y crearemos contenedores de manera práctica. En otras palabras, crearemos un bloc de notas personal avanzado basado en la web que se ejecuta sobre DokuWiki o WordPress. Puede elegir el que le resulte más cómodo.

Cómo ejecutar un contenedor Docker

Primero, debemos asegurarnos de que el motor de la ventana acoplable funcione según sea necesario descargando una imagen de "Hola mundo" y creando un contenedor a partir de ella.

Recuerde, cuando hablamos de una imagen, es el estado suspendido, mientras que cuando hablamos de un contenedor, es una instancia en tiempo de ejecución de una imagen acoplable. En una analogía, de la que hablamos en una parte anterior, una imagen acoplable es como el archivo ISO de una distribución de Linux, mientras que el contenedor es la sesión en vivo del archivo ISO como si lo estuviera ejecutando desde una memoria USB.

Para descargar y ejecutar la imagen "Hola mundo" simplemente escriba en la terminal

sudo docker run hello-world

Este comando descarga la imagen de Hello World y la ejecuta en un contenedor. Cuando el contenedor se ejecuta, imprime un mensaje informativo y luego sale (lo que significa que se apaga).

¿Cómo comprobamos cuántas imágenes tenemos en nuestro sistema? Bueno, simplemente corremos

sudo docker images

Puede preguntarse, ¿cómo encontró mi sistema esta imagen de Hello World y de dónde vino? Bueno, aquí es donde entra en juego el concentrador docker.

Introducción a Docker Hub

Docker Hub es un recurso centralizado basado en la nube para el descubrimiento de imágenes de contenedores, la creación de imágenes y la distribución de esas imágenes.
Específicamente, Docker Hub proporciona algunas características y funciones útiles de las que hablaremos más adelante.

Actualmente, nos centraremos en una característica y esta es encontrar y descargar una imagen acoplable.

Buscando imágenes de Docker

Puede buscar una "imagen de la ventana acoplable lista para descargar y ejecutar", simplemente visitando el concentrador de la ventana acoplable en línea o usando la terminal. Tenga en cuenta que no puede descargar una imagen acoplable desde el concentrador web, pero puede obtener más información sobre una imagen, por ejemplo, cómo se construye y mantiene, etc.

Entonces, para el propósito de esta parte, nos enfocaremos en usar la forma de terminal. Busquemos WordPress

sudo docker search wordpress

Como puede ver, hay toneladas de imágenes acoplables de WordPress, que se construyen con varias combinaciones (por ejemplo, con o sin inclusión de base de datos), están clasificadas con estrellas de popularidad y son oficiales (mantenidas por la empresa acoplable) o automatizadas (construidas y mantenida por particulares). Es obvio que cualquiera puede crear una cuenta y cargar su imagen de ventana acoplable personalizada y lo discutiremos en una parte posterior.

Descarga de una imagen de Docker

A los efectos de este artículo, utilizaremos la última versión de la imagen acoplable de bitnamis, que viene con MySQL preinstalado. Así que vamos a descargarlo:

sudo docker pull bitnami/wordpress:latest

Una vez que ejecute el comando anterior, se comunicará con el concentrador acoplable, preguntará si hay un repositorio llamado "bitnami" y luego preguntará si hay una compilación de "WordPress" etiquetada como la versión "más reciente".

Actualmente, hemos descargado una imagen de WordPress y nada más. Podemos proceder ahora descargando una imagen de DokuWiki buscando una y seleccionando la que más nos guste, o usando la que se muestra a continuación

sudo docker pull mprasil/dokuwiki

La arquitectura de la imagen de Docker

Mientras espera que se complete el procedimiento de descarga, puede ver que una imagen acoplable es una imagen de varias capas encima de una imagen base. Puede ver cómo se descargan todas y cada una de las capas y luego se unifican "mágicamente". El siguiente diagrama muestra una imagen base de Ubuntu que consta de 4 capas de imágenes apiladas.

Como puede imaginar, cada imagen de Docker hace referencia a una lista de capas de solo lectura que representan diferencias en el sistema de archivos. Cuando crea un nuevo contenedor, a partir de una imagen de Docker, como haremos más adelante, agrega una capa nueva, delgada y en la que se puede escribir encima de la pila subyacente. Todos los cambios realizados en el contenedor en ejecución, como la escritura de archivos nuevos, la modificación de archivos existentes y la eliminación de archivos, se escriben en esta fina capa contenedora de escritura. El siguiente diagrama muestra un contenedor basado en la imagen de Ubuntu 15.04.


Eliminación de una imagen de Docker

Ahora, si comprueba cuántas imágenes tiene en su sistema

sudo docker images

verás WordPress, DokuWiki y Hello World. Si por alguna razón desea eliminar y eliminar (rmi) una imagen, simplemente escriba

sudo docker rmi <name-of-the-image>

donde el nombre de la imagen es el nombre de la ventana acoplable tal como se muestra con el comando "imágenes de la ventana acoplable". Por ejemplo, si queremos eliminar Hello World, simplemente podemos escribir:

sudo docker rmi hello-world

Los contenedores son efímeros

Por diseño, los contenedores Docker son efímeros. Por "efímero" queremos decir que un contenedor se puede detener y destruir y se puede crear uno nuevo a partir de la misma imagen de Docker y colocarlo con un mínimo absoluto de instalación y configuración.

Por lo tanto, debe tener en cuenta que cuando creemos un contenedor a partir de la imagen Docker de su preferencia (WordPress o DokuWiki), cualquier cambio que realice, p. agregar una publicación, una imagen, se perderá una vez que detenga o elimine el contenedor. En otras palabras, cuando se elimina un contenedor, todos los datos escritos en el contenedor que no están almacenados en un volumen de datos se eliminan junto con el contenedor.

Un volumen de datos es un directorio o archivo en el sistema de archivos del host de Docker que se monta directamente en un contenedor. De esta manera, puede intercambiar contenedores por otros nuevos y mantener los datos seguros en la carpeta de inicio de sus usuarios. Tenga en cuenta que puede montar cualquier cantidad de volúmenes de datos en un contenedor. Incluso varios contenedores también pueden compartir uno o más volúmenes de datos.

El siguiente diagrama muestra un solo host de Docker (por ejemplo, su Ubuntu 15.10) que ejecuta dos contenedores. Como puede ver, también hay un único volumen de datos compartidos ubicado en /data en el host de Docker. Esto se monta directamente en ambos contenedores.

De esta forma, cuando se elimina un contenedor, todos los datos almacenados en volúmenes de datos persisten en el host de Docker y se pueden montar en un nuevo contenedor.

Redes de contenedores Docker

Cuando instala Docker, crea un dispositivo de red en su sistema. Puede verlo (se llamará docker0) como parte de la pila de red de un host mediante el comando `ifconfig` en su sistema host.

Es importante comprender que los contenedores Docker están aislados y son microservicios individuales que tienen sus propias propiedades de red y la forma en que los ejecutamos y nos conectamos a ellos es asignando su número de puerto a un número de puerto del sistema host.

De esta manera, podemos exponer el servicio web que ejecuta un contenedor en el sistema host.

Creando un bloc de notas personal con un contenedor de WordPress

Comencemos con la creación de nuestro bloc de notas de prueba. Primero usaremos la imagen de WordPress para crear un contenedor Docker

sudo docker run --name=mynotepad -p 80:80 -p 443:443 bitnami/wordpress

Con el comando anterior, le pedimos al servicio Docker en nuestro sistema host que creara y ejecutara (docker run) un contenedor llamado `mynotepad` (--name=mynotepad), mapear el puerto HTTP y HTTPS del host y el contenedor (-p 80:80 -p 443:443 ) y use la imagen de WordPress ( bitnami/wordpress )

Una vez que se inicialice el contenedor, recibirá información sobre el contenedor. Es hora de iniciar un navegador y señalarlo a http://localhost

Si todo salió bien, verá el sitio web predeterminado de WordPress

Como ya sabrá, para iniciar sesión en la página de administración de WordPress, simplemente vaya a http://localhost/login y use las credenciales predeterminadas de usuario / bitnami. Luego puede crear un nuevo usuario o una publicación de prueba en WordPress y publicarla. Puedes ver mi publicación de prueba en la imagen a continuación

Volvamos a la terminal. Como puede ver, su terminal actualmente está vinculada al contenedor en ejecución. Puede usar Ctrl+C para salir. Esto también detendrá el contenedor.

Ahora veamos nuestros contenedores disponibles. Puede ejecutar el siguiente comando:

sudo docker ps -l

para ver el contenedor que habíamos creado y ejecutado previamente.

Como puede ver en la imagen de arriba, hay información importante como el nombre del contenedor y la identificación única del contenedor. De esta forma podemos volver a iniciar el contenedor:

docker start mynotepad

Luego puede verificar los procesos que ejecuta el contenedor acoplable, con el siguiente comando:

sudo docker top mynotepad

De forma predeterminada, con `docker start mynotepad`, el contenedor docker se ejecuta en segundo plano. Para detenerlo, puede ejecutar el siguiente comando

sudo docker stop mynotepad

Puede leer más sobre cómo interactuar con el contenedor en la documentación oficial de la ventana acoplable https://docs.docker.com/engine/userguide/containers/usingdocker/

¿Dónde están los contenedores?

Si desea ver dónde están los contenedores en el sistema de archivos host, puede dirigirse a /var/lib/docker

sudo cd /var/lib/docker
sudo ls
sudo cd containers
sudo cd ID
sudo ls

Como puede ver, los números de identificación representan los contenedores reales que ha creado.

Creación de almacenamiento persistente

Vamos a crear un nuevo contenedor de WordPress, pero esta vez lo pondremos en segundo plano y también expondremos la carpeta de WordPress en nuestro sistema host para que podamos poner archivos en él o eliminar cualquier archivo que no queramos.

Primero creamos una carpeta en nuestro directorio de inicio

mkdir ~/wordpress-files

luego ejecute y cree un contenedor basado en la misma imagen que creamos el anterior:

sudo docker run -d -ti --name=mynotepad-v2 -v ~/wordpress-files:/opt/bitnami/apps -e USER_UID=`id -u` -p 80:80 bitnami/wordpress

La diferencia, esta vez, es que usamos el parámetro -d para el modo separado y el parámetro -ti para adjuntar un terminal en modo interactivo para que pueda interactuar con él más adelante.

Para verificar el contenedor en ejecución, simplemente ejecute el siguiente comando

sudo docker ps

Paremos el contenedor

sudo docker stop mynotepad-v2

Ahora, si ejecuta el comando `docker ps`, no verá nada allí.
Empecemos de nuevo con el siguiente comando:

sudo docker start mynotepad-v2

Si revisas la carpeta que hemos creado previamente verás la instalación de WordPress

Puede leer más sobre la imagen que usamos en el centro acoplable https://hub.docker.com/r/bitnami/wordpress/

Creando un bloc de notas personal con un contenedor DokuWiki

Esta vez, crearemos un bloc de notas usando DokuWiki. Como previamente hemos descargado la imagen, lo único que queda por hacer es crear un contenedor a partir de ella.

Entonces, ejecutemos el siguiente comando para crear nuestro contenedor `mywikipad`

docker run -d -p 80:80 --name mywikipad mprasil/dokuwiki

Y luego diríjase a su navegador y agregue la siguiente dirección para iniciar la configuración de su bloc de notas wiki:

http://localhost/install.php

Puede obtener más información sobre DokuWiki en la documentación oficial y personalizar la wiki según sus necesidades:

https://www.dokuwiki.org/manual

Eliminación de un contenedor Docker

Una vez que se sienta cómodo con la creación, el inicio y la detención de contenedores docker, se verá en la necesidad de limpiar el desorden de pruebas creado por los múltiples contenedores.

Para eliminar un contenedor, primero deberá detenerlo y luego eliminarlo ejecutando el siguiente comando:

docker rm <name of container or ID>

También puede agregar varias ID en el mismo comando `docker rm` para eliminar varios contenedores docker al mismo tiempo.

Resumen

En esta parte, aprendimos cómo crear un contenedor y usarlo de manera práctica para crear un bloc de notas personal basado en WordPress o DokuWiki. Vimos algunos comandos básicos sobre cómo iniciar y detener los contenedores que creamos y cómo eliminar las imágenes y los contenedores.

En la siguiente parte, veremos cómo se crean las imágenes de la ventana acoplable creando las nuestras.


Docker
  1. Cómo mover imágenes de Docker entre hosts

  2. Cómo reducir el tamaño de la imagen de Docker:6 métodos de optimización

  3. Cómo usar Docker Compose

  4. Cómo y por qué usar un host Docker remoto

  5. Cómo configurar docker para usar proxy

Cómo instalar y usar Docker en Ubuntu 22.04

¿Qué es Docker Compose y cómo se usa?

Cómo crear una imagen de Docker desde un contenedor en ejecución

Cómo reducir el tamaño de la imagen de Docker en los contenedores de Docker

Cómo usar Docker Guardar imagen y exportar para compartir

Cómo usar Docker Commit para cambiar imágenes de contenedores