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.

  • Docker is supported in Plesk for the following operating systems: 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, and Virtuozzo 7 with Update 1 Hotfix 1 (7.0.1-686) or later.

    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

Containers

You can access images from Docker Hub in the Run Container catalog (Docker > Containers > Run Container).

To access the catalog:

  • if you have not previously installed a container, in Docker > Containers, click Run Container.
  • if you have previously installed a container, in Docker > Containers, click the plus icon image plus icon.

To view available images, use the search box.

image docker catalog

Specify the image name, the repository, or both.

These repositories are available to search:

  • 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.

Multiple versions may be available for each application. You can run a specific version by selecting the appropriate tag, as shown below:

image docker catalog version

Para ejecutar un contenedor:

  1. Go to Docker > Containers > Run Container.

  2. Use the search box to find images in the catalog. If the image is stored locally, (local) appears after the version.

  3. To view the image description and documentation on Docker Hub, click the more info icon image expand icon. This does not apply to local images.

  4. Click the image card.

    • To run a specific version, select the image version you want to run from the Image version drop-down and click Next.
    • To run the latest version of the selected application, click Next.

    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. After you tweak the settings, click Run. The container appears in the list of containers in the Containers tab.

    image docker container running

See the Console Log to find out if the container runs without issues.

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.

To edit container settings, go to the Containers tab and click the settings icon image settings icon next to the container you want to edit.

image container settings

Limitación de la memoria

By default, using RAM in a Docker container is unlimited. To limit using RAM, select the Memory limit checkbox and enter the limit value in megabytes in the MB field.

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).

To change the port on the host system, deselect Automatic port mapping and specify another external port in Manual mapping. If Manual mapping does not appear when you deselect the option, it means that the container does not expose ports.

When using manual mapping, by default Docker only binds to the specified port on the host system’s localhost interface (127.0.0.1). This way, the port is inaccessible from the Internet, and the application inside the container is safe from attacks. To have Docker bind to the specified port on all network interfaces of the host system, deselect Make the port inaccessible from the Internet. If you do this, the application inside the container becomes accessible from the Internet, and can be reached on the specified port via any of the host system’s IP addresses.

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

Docker volumes are directories on your server mounted to a Docker container. This is how you have persistent storage that can be accessed from your host system. The data in Docker volumes is not deleted when you stop or delete a container.

Advertencia: The data stored in Docker volumes will not be included in the Plesk backup. To prevent data loss, back up any essential data stored in a volume with a third-party backup tool.

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:

  • In the Host field - the absolute path to the directory on the server that you want to mount in the container.
  • In the Container field - the absolute path to a directory inside the container.

To map more directories, click Add one more.

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:

  • Stop (Stop), start (Start) or restart (Restart) a container. In these cases, the container will be recreated with the current settings.

    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.

  • Click the arrow image down arrow next to the container to view logs and resource consumption.

  • Click the settings icon image settings icon next to the container to change container settings, such as environment variables or volume mapping (Settings).

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

Click the more options icon image more icon next to the container to do one or more of the following:

  • Recreate a container using the same or another version of the image (Recreate).
  • Create an image based on a container with your custom settings (Save as Image).
  • Take a snapshot of a container (Download Snapshot).
  • Remove a container (Remove).

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

By default, Plesk uses Docker installed as a local service. However, you can use one or more Docker services installed outside of Plesk. Note that you can use only one service at a time. You can see which server is active in the Environments tab of the Docker settings page in 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

You can establish a connection between a Plesk server with the Docker extension and a remote node with Docker service.

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

These steps must be performed on the remote host:

#. 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. Run the following commands to modify the current Docker service so it starts after host configuration:

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. Save the outputs of the following files on your local machine for use by the client to connect remotely:

1 2 3

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

On the local server, configure the Docker remote host:

  1. Go to Docker > Environments.
  2. Click Add Server image plus icon and specify the settings of the remote server with 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. Go to Docker > Environments.
  2. In the list of servers, select the Docker node that you are going to use and click Set Active.

Alternatively, you can set the Docker node as active while editing its settings.

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:

Go to Docker > Containers, click the more options icon image more icon next to the container and click > Save as Image. In the Save <container name> as Image side panel, specify:

  • Image name.
  • An optional Tag. You can specify the image version here. By default, the version will be «latest».

The created image appears in the Images tab and is marked Local image.

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.
  • You upload an image to Docker in Plesk (Upload image in the Docker Images tab).
  • 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.

To download another version of an image from the online catalog, click the Pull icon image pull icon, choose the version you want to pull from the drop-down, and click Pull.

If Docker has at least one downloaded version from a group of versions belonging to an image, this image is marked Local image in the catalog. Plesk also shows how many local images exist for a product.

image docker local images

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

  1. Go to Docker > Images.

  2. To find a specific local image, use the Search bar.

  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. Select the specific image(s) you want to remove and click Remove.

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.
  • You must map the port inside a container to a port on the host system (for example, 32768) manually

To map the port inside a container:

  1. Go to Docker > Containers and click the settings icon image settings icon next to the container you want to edit.
  2. Turn off Automatic port mapping.
  3. Map the port inside the container manually to a specific port on your system (for example, 32768). You can make this port inaccessible from the Internet.

You cannot 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.

To add a rule for nginx in the domain settings:

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.

Deploying Docker Compose YAML files

You can deploy Docker Compose YAML files using the online text editor, uploading a file from local storage, or using a Docker Compose file stored inside a website’s Home directory. Typical operations on stacks are supported, such as up (including pull and force-recreate), stop, and down. You can modify and update the stacks after creation.

Nota: You cannot deploy Dockerfiles or any other files required by an application using this section.

To deploy a Docker Compose file:

  1. Go to Docker > Stacks > Add Stack.

  2. Fill in a project name and choose one of the methods for deploying the docker-compose file:

    • Editor: Define or paste the content of your Compose file.
    • Upload: Upload a Compose file from local storage.
    • Webspace: Select a Compose file stored in a domain’s Home directory. For Webspace, choose the domain where the file is located. For Compose File, browse to the Compose file location.

You can declare and build custom containers. Any artifacts created during the build process will be placed inside the website’s Home directory.

For more information about the Compose file format, refer to the Docker documentation.

Deploying Portainer containers in Docker

Portainer is a container management software that makes it easier to deploy containers and stacks, view a container’s status and logs, create users and teams, secure your environments, and more.

To install Portainer, go to Docker > Install Portainer. After installation is complete, to manage Portainer containers inside Docker, go to Docker > Go to Portainer.

Nota: Portainer is currently a beta feature.

For more information about Portainer, refer to the Portainer documentation.