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.
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
- Linux Containers (base para Linux)
- Wiki de Debian
- Instalación de Docker para Debian
- Portainer para interfaz gráfica
- Grupo en Telegram (no oficial)
- Cómo instalar Docker en Deepin


