resumen: Docker es una plataforma utilizada para ejecutar aplicaciones en contenedores. Le permite usar software específico, como puede ser el caso de Redis o MongoDB, o bien una versión específica del software que puede que no sea soportada por su sistema operativo o que requiera compilación.

Docker está disponible como extensión de Plesk. Con esta extensión, puede ejecutar y gestionar contenedores basados en imágenes específicas de Docker y usar Docker tanto en el host local como en servidores remotos.

En este tema aprenderá a crear, configurar y gestionar contenedores Docker en Plesk. También aprenderá a controlar hosts Docker remotos desde Plesk.

Requisitos y limitaciones

Advertencia: La extensión Docker descarga imágenes de Docker Hub tal y como están y no los preconfigura de ningún modo. Algún software o contenedores Docker presentes en esta solo van dirigidos a entornos de confianza y pueden requerir efectuar algunos pasos de configuración de seguridad adicionales. Antes de iniciar estas imágenes descargadas en Plesk, mejore su seguridad. Si necesita más información al respecto, consulte la documentación del proveedor del software o contenedor. Por ejemplo, examine la sección de seguridad de la documentación de Redis.

  • En Plesk se soporta Docker para los siguientes sistemas operativos: CentOS 7, Red Hat Enterprise Linux 7, Debian 10, Debian 11, Debian 12, Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, AlmaLinux 8.x, AlmaLinux 9.x, Rocky Linux 8.x y Virtuozzo 7 con Update 1 Hotfix 1 (7.0.1-686) o versiones posteriores.

    En el caso de Plesk para Windows, puede usar Docker instalado en una máquina remota. Para más información al respecto, consulte **Uso de Docker de forma remota** a continuación.

  • No puede usar Docker en caso de que Plesk se haya desplegado en un contenedor Docker.

  • Para usar los servicios remotos de Docker en Plesk, es necesario disponer de una licencia adicional. Esta puede comprarse aparte o bien como parte del Hosting Pack, Power Pack o Developer Pack.

  • Tenga en cuenta que Docker sólo puede ejecutarse en sistemas x64.

  • Los contenedores Docker en Plesk no pueden migrarse ni copiarse. De todos modos, puede crear un backup de los datos usados por los contenedores. Para más información, consulte Asignación de volúmenes a continuación o descargue las instantáneas correspondientes.

  • Se soporta Virtuozzo 7 que tenga instalado Update 1 Hotfix 1 (7.0.1-686) o una versión posterior. Tenga en cuenta que a partir de esta actualización, los nuevos contenedores basados en CentOS 7 se crean por omisión con el firewall activado para una mayor seguridad. En este caso, el administrador de Plesk deberá configurar el firewall de forma manual para así garantizar que los puertos necesarios para el funcionamiento de Plesk están debidamente abiertos.

Requisitos mínimos

Antes de poder empezar a utilizar Docker, es necesario instalar la extensión Docker en el servidor Plesk:

Una vez instalada la extensión, ya puede comenzar. Verá la opción Docker en el panel de navegación.

image docker menu

Contenedores

Puede acceder a las imágenes desde Docker Hub en el catálogo Ejecutar contenedor (Docker > Contenedores > Ejecutar contenedor).

Para acceder al catálogo:

  • Si no ha instalado previamente un contenedor, en Docker > Contenedores, haga clic en Ejecutar contenedor.
  • Si ha instalado previamente un contenedor, en Docker > Contenedores, haga clic en el icono del símbolo más image plus icon.

Para ver las imágenes disponibles, utilice el cuadro de búsqueda.

image docker catalog

Especifique el nombre de la imagen, el repositorio o ambos.

Estos repositorios están disponibles para realizar búsquedas:

  • Repositorio local - contiene imágenes locales. Se trata de imágenes ya descargadas y que ahora se almacenan en el servidor con Docker. Si desea más información, consulte Administración de imágenes locales más adelante en esta sección.
  • Docker Hub.

Puede haber varias versiones disponibles para cada aplicación. Puede ejecutar una versión específica seleccionando la etiqueta adecuada, como se muestra a continuación:

image docker catalog version

Para ejecutar un contenedor:

  1. Vaya a Docker > Contenedores > Ejecutar contenedor.

  2. Utilice el cuadro de búsqueda para encontrar imágenes en el catálogo. Si la imagen está almacenada localmente, aparecerá (local) después de la versión.

  3. Si desea ver la documentación y la descripción de una imagen en Docker Hub, haga clic en el icono de más información image expand icon. Esto no es aplicable a imágenes locales.

  4. Haga clic en la tarjeta de la imagen.

    • Para ejecutar una versión específica, seleccione la versión de la imagen que desea ejecutar en el menú desplegable Versión de la imagen y haga clic en Siguiente.
    • Para ejecutar la versión más reciente de la aplicación seleccionada, haga clic en Siguiente.

    Plesk crea un contenedor y le pide que especifique su configuración, como por ejemplo las variables de entorno. A continuación, se procederá con la ejecución del contenedor. Puede cancelar su ejecución haciendo clic en Cancelar en la pantalla Configuración. Si desea más información acerca de la configuración, consulte Configuración de los contenedores más adelante en esta página.

  5. Después de ajustar la configuración, haga clic en Ejecutar. El contenedor aparecerá en la lista de contenedores de la pestaña Contenedores.

    image docker container running

Consulte el registro de la consola para comprobar si el contenedor se ejecuta sin incidencias.

Configuración de un contenedor

Nota: si desea modificar la configuración del contenedor, no es necesario detenerlo. Cuando guarde la nueva configuración, Plesk volverá a crear el contenedor.

Para editar la configuración del contenedor, vaya a la pestaña Contenedores y haga clic en el ícono de configuración image settings icon junto al contenedor que desea editar.

image container settings

Limitación de la memoria

De forma predeterminada, en contenedores Docker el uso de la RAM es ilimitado. Si desea limitar el uso de la RAM, seleccione la casilla Límite de memoria e introduzca el valor límite en megabytes en el campo MB.

Nota: en estos momentos, en contenedores Docker no puede limitarse el uso de disco y de CPU.

Nota: Los contenedores Docker son objetos a nivel del administrador y no son controlados por límites cgroups a nivel de la suscripción (CPU, RAM, uso de disco).

Inicio automático

Si no se selecciona la opción Inicio automático tras reiniciar el sistema, una vez se reinicie el sistema, los sitios web que utilizan este contenedor pueden no estar operativos, por lo que usted deberá iniciar el contenedor manualmente.

Asignación de puertos

Por omisión, la Asignación automática de puerto está activada y el puerto interno del contenedor está asignado a un puerto aleatorio en el sistema host (por ejemplo, 32768).

Para cambiar el puerto en el sistema host, deseleccione Asignación automática de puerto y especifique otro puerto externo en Asignación manual. Si al deseleccionar la opción no aparece Asignación manual, significa que el contenedor no expone puertos.

Cuando se utiliza la asignación manual, Docker se vincula por omisión únicamente al puerto especificado en la interfaz localhost del sistema host (127.0.0.1). De esta manera, el puerto es inaccesible desde Internet y la aplicación dentro del contenedor está a salvo de ataques. Para que Docker se vincule al puerto especificado en todas las interfaces de red del sistema host, deseleccione Hacer que el puerto sea inaccesible a través de internet. Si lo hace, la aplicación en el contenedor será accesible desde Internet y se podrá acceder a ella en el puerto especificado a través de una de las direcciones IP del sistema host.

Advertencia: Docker supone que la autenticación la realiza la propia aplicación, pero a veces no es así (por ejemplo, MySQL/MariaDB no permite el acceso anónimo predeterminado, pero redis sí). Hacer que la aplicación dentro de un contenedor sea accesible desde Internet puede provocar que la aplicación sea atacada por un actor malintencionado.

Asignación de volúmenes

Los volúmenes de Docker son directorios presentes en su servidor que se han montado en un contenedor Docker. Así dispone de un almacenamiento constante al que puede accederse desde su sistema host. Los datos presentes en volúmenes de Docker no se eliminan al detener o eliminar un contenedor.

Advertencia: Los datos guardados en volúmenes de Docker no se incluirán en el backup de Plesk. Para evitar la pérdida de datos, copie de antemano los datos esenciales guardados en un volumen con una herramienta de backup de terceros.

Si desea más información sobre los datos en contenedores, consulte la documentación de Docker.

Para añadir una asignación de volumen, especifique lo siguiente:

  • En el campo Host, la ruta absoluta al directorio del servidor que desea montar en el contenedor.
  • En el campo Contenedor, la ruta absoluta a un directorio dentro del contenedor.

Para asignar más directorios, haga clic en Añadir más.

Configuración de las variables de entorno

Las variables de entorno son usadas por la aplicación en un contenedor. Puede que necesite añadir más variables o editar las variables existentes. Plesk le permite añadir tantas variables como desee.

Operaciones con contenedores

Puede hacer lo siguiente con los contenedores:

  • Detener (Detener), iniciar (Iniciar) o reiniciar (Reiniciar) un contenedor. En estos casos, se recreará el contenedor con la configuración actual.

    Nota: si no guardó los datos en los volúmenes montados, se perderán los datos. Si desea más información al respecto, consulte la sección Asignación de volúmenes a continuación.

  • Haga clic en la flecha image down arrow junto al contenedor para ver los registros y el consumo de recursos.

  • Haga clic en el ícono de configuración image settings icon junto al contenedor para cambiar la configuración del contenedor, como las variables de entorno o la asignación de volumen (Configuración).

  • Cambiar el nombre de un contenedor (Configuración > Nombre del contenedor).

Haga clic en el ícono de más opciones image more icon junto al contenedor para realizar una o más de las siguientes acciones:

  • Volver a crear un contenedor usando la misma versión de la imagen u otra versión distinta (Recrear).
  • Crear una imagen basándose en un contenedor con su configuración personalizada (Guardar como imagen).
  • Crear una instantánea de un contenedor (Descargar instantánea).
  • Eliminar un contenedor (Eliminar).

Recreación de un contenedor

Generalmente necesitará recrear un contenedor cuando desee actualizar la aplicación. De hecho, en términos generales, puede recrear un contenedor usando cualquier versión de la aplicación disponible en el catálogo, no necesariamente la más reciente.

Si ha personalizado la configuración, esta se preservará durante el proceso de recreación. Para conservar los datos usados por la aplicación en un contenedor, especifique la asignación de volumen antes de recrear el contenedor. La asignación de volúmenes le permite acceder a los directorios usados en un contenedor. Si desea más información al respecto, consulte Asignación de volumen en la configuración del contenedor.

Para recrear un contenedor:

#. Go to Docker and click the more options icon image more icon next to the container you want to recreate. #. Click Recreate in the container settings and specify the image version and whether to use default environment variables.

Uso de Docker de forma remota

De forma predeterminada, Plesk usa Docker instalado como servicio local. Sin embargo, puede usar uno o más de los servicios de Docker instalados fuera de Plesk. Tenga en cuenta que solo puede usar un servicio a la vez. Puede ver qué servidor está activo en la pestaña Entornos de la página de configuración de Docker en Plesk.

Nota: la gestión de los servicios remotos de Docker requiere disponer de un complemento para la llave de licencia de Plesk. Si no dispone de dicho complemento sólo podrá administrar el servicio local de Docker que se ejecuta en el servidor Plesk.

Configuración de servicios remotos

Configure los servidores remotos que ejecutan Docker tal y como se describe en la documentación de Docker para así poderlos usar como servidores remotos en Plesk.

Gestión de servicios remotos

Puede establecer una conexión entre un servidor Plesk con la extensión Docker y un nodo remoto con el servicio de Docker.

Los pasos detallados a continuación son aplicables tanto a Plesk para Linux como a Plesk para Windows.

Estos pasos deben realizarse en el host remoto:

#. Create the /etc/docker/daemon.json configuration file for Docker with the following content:

1 2 3 4 5 6 7 8

{ "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"], "tls": true, "tlsverify": true, "tlscacert": "/root/ca.pem", "tlscert": "/root/server-cert.pem", "tlskey": "/root/server-key.pem" }

#. Prepare .pem files. You can use the following example. Replace the IP on line 4 with the IP address of your remote node and run each command:

1 2 3 4 5 6 7 8 9 10

openssl genrsa -aes256 -out ca-key.pem 4096 openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem openssl genrsa -out server-key.pem 4096 openssl req -subj "/CN=192.0.2.1" -new -key server-key.pem -out server.csr openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem openssl genrsa -out key.pem 4096 openssl req -subj '/CN=client' -new -key key.pem -out client.csr openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem chmod 0400 ca-key.pem server-key.pem key.pem chmod 0444 ca.pem server-cert.pem cert.pem

  1. Ejecute los siguientes comandos para modificar el servicio de Docker actual para que se inicie después de la configuración del host:

1 2 3 4

cp /lib/systemd/system/docker.service /etc/systemd/system/ sed -i 's/\ -H\ fd:\/\///g' /etc/systemd/system/docker.service systemctl daemon-reload systemctl restart docker

  1. Guarde las salidas de los siguientes archivos en su máquina local para que el cliente pueda conectarse de forma remota:

1 2 3

cat key.pem cat cert.pem cat ca.pem

En el servidor local, configure el host remoto de Docker:

  1. Vaya a Docker > Entornos.
  2. Haga clic en Añadir servidor image plus icon e indique la configuración del servidor remoto con Docker.
  3. Para empezar a usar este servicio de Docker en Plesk, deje Definir activo seleccionado.

image docker add remote node

El enlace a Docker aparecerá en el panel de navegación.

Para pasar de un servicio de Docker a otro:

  1. Vaya a Docker > Entornos.
  2. En la lista de servidores, seleccione el servidor que usará y haga clic en Definir activo.

También puede establecer el nodo Docker como activo mientras edita su configuración.

image remote docker hosts

Creación de imágenes con una configuración personalizada

Si desea crear una nueva imagen basada en los cambios realizados en un contenedor, use el comando Guardar como imagen. Este comando efectúa una instantánea de su contenedor, que se muestra como una imagen nueva en el catálogo de imágenes. De esta forma puede crear imágenes con parámetros personalizados, como puede ser el caso de las variables de entorno.

Para crear una imagen de uno de sus contenedores:

Vaya a Docker > Contenedores, haga clic en el icono de más opciones image more icon junto al contenedor y haga clic en > Guardar imagen como. En el panel lateral Guardar <container name> como imagen, indique:

  • Nombre de la imagen.
  • Una etiqueta opcional. Aquí puede indicar la versión de la imagen. De forma predeterminada, la versión será «latest».

La imagen creada aparece en la pestaña Imágenes y se marca como Imagen local.

Administración de imágenes locales

Las imágenes locales son imágenes almacenadas por Docker en un disco local, por lo que no es necesario descargarlas del catálogo de imágenes.

Una imagen deviene local en las siguientes situaciones:

  • Usted ha seleccionado cualquier versión (etiqueta) de una imagen y la imagen se ha empezado a descargar. Si más adelante ejecuta un contenedor o cancela su ejecución (en la pantalla Configuración), la imagen se guarda de forma local.
  • Ha cargado una imagen a Docker en Plesk (Cargar imagen en la pestaña Imágenes de Docker).
  • Usted ha creado una imagen personalizada de un contenedor. Para más información al respecto, consulte Creación de imágenes con una configuración personalizada.
  • Usted ha creado una imagen mediante la interfaz de línea de comandos.

Para descargar otra versión de una imagen del catálogo en línea, haga clic en el ícono Pull image pull icon, elija la versión de la que desea efectuar pull en el menú desplegable y haga clic en Pull.

Si Docker al menos tiene una versión descargada de un grupo de versiones perteneciente a una imagen, esta imagen se marcará como Imagen local en el catálogo. Plesk también muestra cuántas imágenes locales existen para un producto.

image docker local images

Para ver las imágenes locales y eliminar aquellas imágenes en desuso:

  1. Vaya a Docker > Imágenes.

  2. Para encontrar una imagen local específica, utilice la barra de búsqueda.

  3. Si desea ver todas las imágenes locales de un producto determinado, haga clic en el enlace que se muestra debajo del nombre del producto. Se mostrarán las etiquetas de todas las imágenes locales y el espacio en disco usado.

    image remove outdated images

  4. Seleccione las imágenes que desea eliminar y haga clic en Eliminar.

Configuración de nginx para el envío de peticiones de dominios a un contenedor

Algunos contenedores Docker exponen puertos para que se pueda acceder a las aplicaciones presentes en los contenedores mediante estos puertos.

Cuando usa una aplicación en un contenedor Docker en su sitio web, puede que no le resulte demasiado cómodo especificar el puerto no estándar en su URL. Para ello, puede configurar nginx para que envíe las peticiones de los dominios a dicho puerto y así los dominios podrán usar un puerto estándar (como el 80) y no será necesario especificar explícitamente el puerto en la URL.

Requisitos

  • nginx debe estar en ejecución en Plesk.
  • Debe asignar manualmente el puerto dentro de un contenedor a un puerto en el sistema host (por ejemplo, 32768)

Para asignar el puerto dentro de un contenedor:

  1. Vaya a Docker > Contenedores y haga clic en el ícono de configuración image settings icon junto al contenedor que desea editar.
  2. Desactive la opción Asignación automática de puerto.
  3. Asigne manualmente el puerto dentro del contenedor a un puerto específico de su sistema (por ejemplo, 32768). Puede hacer que este puerto sea inaccesible desde Internet.

You can set up nginx to proxy requests from domains to that port, so domains can use a standard port on nginx (for example, 80). To make this possible, add a rule for nginx in the domain settings.

Para añadir una regla para nginx en la configuración del dominio:

Vaya a Sitios web y dominios > el dominio > Reglas de proxy de Docker > Añadir regla y especifique lo siguiente:

  • URL. Especifique la URL del sitio web que utiliza una aplicación en ejecución en un contenedor. Puede ser el sitio web principal o parte de este.
  • Contenedor. Seleccione la aplicación que se ejecuta como un contenedor Docker.
  • Puerto. Seleccione una de las asignaciones especificadas en la configuración del contenedor (un puerto en un contenedor asignado a un puerto en su sistema). Nginx enviará las peticiones al puerto en el sistema.

image docker nginx rule

Las reglas de proxy se implementan en la configuración del servidor web, por ejemplo, en el archivo  nginx.conf  del sitio web presente en  /var/www/vhosts/system/$domain/conf/:

#extension docker begin
location ~ ^/.* {
    proxy_pass http://0.0.0.0:9080;
    proxy_set_header Host             $host;
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
}
#extension docker end

Las reglas de proxy deberían funcionar correctamente en servidores que se encuentren detrás de NAT.

Nota: los contenedores Docker conectados a un sitio web mediante reglas de proxy no se tienen en cuenta al contabilizar el uso del espacio en disco de la suscripción. La única excepción serían cuando el directorio de un sitio web se ha montado en un contenedor Docker como volumen, ya que en este caso cuando se contabilizara el uso del espacio en disco del sitio web se tendrían en cuenta todos los archivos presentes en el contenedor.

Despliegue de archivos YAML de Docker Compose

Puede desplegar archivos YAML de Docker Compose utilizando el editor de texto en línea, cargando un archivo desde el almacenamiento local o utilizando un archivo de Docker Compose guardado en el directorio principal de un sitio web. Se admiten las operaciones típicas en las pilas, como up (incluidas pull y force-recreate), stop y down. Puede modificar y actualizar las pilas después de su creación.

Nota: No puede desplegar Dockerfiles ni ningún otro archivo requerido por una aplicación utilizando esta sección.

Para desplegar un archivo de Docker Compose:

  1. Vaya a Docker > Pilas > Añadir pila.

  2. Introduzca un nombre de proyecto y elija uno de los métodos para desplegar el archivo docker-compose:

    • Editor: defina o pegue el contenido del archivo Compose.
    • Cargar: cargue un archivo Compose desde el almacenamiento local.
    • Espacio web: seleccione un archivo Compose guardado en el directorio principal de un dominio. En Espacio web, elija el dominio donde se encuentra el archivo. En Archivo Compose, busque la ubicación del archivo Compose.

Puede declarar y crear contenedores personalizados. Cualquier artefacto creado durante el proceso de creación se guardará en el directorio principal del sitio web.

Si desea más información sobre el formato de archivo Compose, consulte la documentación de Docker.

Despliegue de contenedores Portainer en Docker

Portainer es un software de gestión de contenedores que facilita el despliegue de contenedores y pilas, la visualización del estado y los registros de un contenedor, la creación de usuarios y equipos, la protección de sus entornos y mucho más.

Para instalar Portainer, vaya a Docker > Instalar Portainer. Una vez completada la instalación, para gestionar los contenedores Portainer en Docker, vaya a Docker > Ir a Portainer.

Nota: Portainer es actualmente una función beta.

Si desea más información sobre Portainer, consulte la documentación de Portainer.