Docker

Logo Docker

Docker es el nombre de la plataforma para el desarrollo de aplicaciones en contenedores de software. Es un proyecto de código abierto estrenado desde marzo de 2013 y alternativo a los virtualizadores tradicionales como VirtualBox.

Docker funciona muy bien en servidores (en Deepin puedes hacer uno propio). Antes de instalar es necesario conseguir varios componentes, conexión en línea (para cloud computing) y conocimientos en la terminal (muy frecuente en administradores de sistemas).

Es una opción necesaria para operar servicios, como base de datos, sin el riesgo de romper el sistema por problemas de dependencias. Debido a que Deepin 25 cuenta con Podman, no es necesario instalar Docker para usar su repositorio de contenedores. Si lo tuyo es tener tus programas preferidos actualizados, sugerimos usar Flatpak.

Instalación

Docker no viene preinstalado, sino su alternativa libre Podman.

Para Deepin 20 y anteriores, se instala con el comando sudo apt install docker-ce. Este paso requiere del repositorio deepines (versión 15.11). Para Deepin 25, se puede instalar con un contenedor Distrobox de Debian.

Las librerías necesarias están en los paquetes apt-transport-https ca-certificates curl software-properties-common. Se ejecuta en la terminal como sudo apt install apt-transport-https ca-certificates curl software-properties-common.

En el caso del segundo es necesario actualizar con sudo update-ca-certificates. Para confirmar si está en funcionamiento basta escribir docker --version.

Inconvenientes reportados

Se reportaron problemas durante la instalación de Docker en versiones anteriores de Deepin:

En 15.11 se encontró un fallo al ejecutar Docker. La solución temporal es editar el archivo de /usr/share/python-apt/templates/Deepin.infochange , cambiando la linea de Suite: unstable a Suite: stable.

Otro relacionado es la salida de puertos que podría interferir los datos. Ten en cuenta que números como 80 están ocupados por Deepin. Puedes ejecutar el comando –publish-all para cambiar a un número al azar. Si usas un cortafuegos, como GUFW, por favor añade a la lista de excepciones.

Docker en un contenedor Distrobox dedicado

Se puede instalar Docker en un contenedor dedicado exclusivamente a instalar esta clase de contenedores. La ventaja es su versatilidad en configurar servidores en unos toques.

Primero crea un contenedor, en el que se basará en una imagen obtenida de Opensuse. Este ocupará alrededor de 500 MB.

distrobox create --name docker-box --image registry.opensuse.org/opensuse/distrobox:latest --additional-packages "systemd docker socat fish nano" --init --unshare-all --volume /var/run/distrobox_docker:/var/run/distrobox_docker

Ten en cuenta que creará una carpeta distrobox_docker. Si se ha creado, deberás corregir sus permisos con el comando sudo chmod -R 0777 /var/run/distrobox_docker/. No crea la carpeta, es imposible que funcione el contenedor.

Ingresa el siguiente comando:

distrobox enter --name docker-box
fish

Dentro del contenedor, activa esta orden:

sudo systemctl enable --now docker

Ahora es el turno de configurar el servidor, solo realiza los siguientes comandos dentro del contenedor.

Primer comando:

docker run --name py-server --rm -d -p 8000:8000 -v $(pwd):/usr/src/app -w /usr/src/app python:3.8-slim python3 -m http.server 8000

Segundo comando:

socat UNIX-LISTEN:/var/run/distrobox_docker/stream.sock,fork TCP:localhost:8000

Tercer comando:

sudo socat TCP-LISTEN:8000,reuseaddr,fork UNIX-CONNECT:/var/run/distrobox_docker/stream.sock

Fuente: Blog de Dorian Knoblauch

Documentación

Uso de contenedores

Esta plataforma usa contenedores, que son similares a aquellos que son transportados en barcos. Los contenedores llevan el software y se ejecutan de forma independiente. Además, son fáciles de trasladar de un servidor a otro sin importar el sistema operativo que está basado.

Los contenedores llevan identificación. Se pueden conseguir uno de ellos desde Docker Store o cualquier repositorio compatible. Si quieres gestionarlos remotamente, prueba a usar Portainer.

Para revisar el listado ejecuta en la terminal con docker images. Ahora, realiza una búsqueda mediante docker search [nombre] y luego instala con docker pull [nombre del paquete]. Por ejemplo mysql, para el software de base de datos que lleva su nombre. Para inspeccionar el paquete, con MySQL de muestra, ejecutamos docker inspect mysql.

Adicionalmente, para quienes provienen de Windows tenemos una guía explicativa sobre el proceso de instalación de SQLServer.

Compositor de Docker

Docker trabaja con archivos de composición, los cuales son claves para instalar servidores web. Los datos se guardan en un archivo tipo docker-compose.yaml. El código del archivo suele ser:

services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
  redis:
    image: redis

Puedes revisar el código fuente de Compose en Github.

Interfaz de red

Para la versión 17 se añadió la interfaz red docker0 que actúa de puente a las conexiones red hacia los contenedores, aislando a las conexiones de red. Para retirar debes ejecutar el comando sudo ip link delete docker0.

Fuente: Stack Overflow

Aprender Docker y Linux

Una posibilidad para aprender a usar Linux es mediante Linux From Scratch. Los detalles está en el repositorio de Github.

Fuente: MuyLinux

Modo rootless

Puedes consultar la documentación para trabajar contenedores sin permisos de administrador en su sitio web.

Lectura adicional

Etiquetas: ,

¿Recomendarías este artículo?

Anterior

Appimage

Siguiente

Fondos de pantalla