{"id":43699,"date":"2024-11-26T13:34:58","date_gmt":"2024-11-26T12:34:58","guid":{"rendered":"\/tutoriales\/?p=43699"},"modified":"2026-03-10T16:33:14","modified_gmt":"2026-03-10T15:33:14","slug":"instalar-wordpress-en-docker","status":"publish","type":"post","link":"\/ar\/tutoriales\/instalar-wordpress-en-docker","title":{"rendered":"C\u00f3mo instalar WordPress en Ubuntu usando Docker"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p>Instalar WordPress en un servidor virtual privado (VPS) con Ubuntu suele requerir LAMP (Linux, Apache, MySQL, PHP). Sin embargo, tambi&eacute;n puedes configurar la plataforma utilizando Docker, una herramienta de contenerizaci&oacute;n que empaqueta aplicaciones y sus dependencias juntas.<\/p><p>Al utilizar Docker, la instalaci&oacute;n de WordPress se simplifica, ya que se ejecuta a partir de im&aacute;genes preconstruidas que contienen todos los componentes necesarios. Este enfoque ofrece varias ventajas: es modular, f&aacute;cil de actualizar y escalar, y r&aacute;pido de redistribuir si necesitas crear una nueva instancia.<\/p><p>En este art&iacute;culo, te explicaremos c&oacute;mo instalar WordPress en Ubuntu con Docker. Aprender&aacute;s cada paso, desde la preparaci&oacute;n de los requisitos previos hasta la gesti&oacute;n de WordPress como sistema de gesti&oacute;n de contenidos (CMS) en contenedores.<\/p><h2 class=\"wp-block-heading\" id=\"h-requisitos-previos-para-instalar-wordpress-con-docker\">Requisitos previos para instalar WordPress con Docker<\/h2><p>Antes de instalar WordPress en Docker, aseg&uacute;rate de que tienes un VPS con una versi&oacute;n reciente de Ubuntu, como <strong>22.04 <\/strong>o posterior, para evitar problemas de compatibilidad.<\/p><p>Tu servidor tambi&eacute;n debe permitir el acceso root completo para evitar errores de permisos al modificar archivos del sistema. Adem&aacute;s, <a href=\"\/ar\/tutoriales\/apuntar-dominio-vps\">apunta un nombre de dominio a tu VPS<\/a> para que tu sitio web de WordPress sea accesible al p&uacute;blico.<\/p><p>Si no tienes un VPS, te recomendamos que contrates un <a href=\"\/ar\/vps\/hosting-docker\">plan VPS Docker de Hostinger<\/a>. Como Docker y WordPress son relativamente ligeros, nuestro plan <strong>KVM 1<\/strong> con una <strong>CPU de un solo n&uacute;cleo<\/strong>, <strong>4 GB <\/strong>de RAM y <strong>50 GB <\/strong>de almacenamiento deber&iacute;a ser suficiente. Puedes pasar a un plan de nivel superior si necesitas m&aacute;s recursos a medida que crece tu sitio.<\/p><p>Con Hostinger, puedes conectarte a tu VPS como root directamente desde tu navegador web, haciendo que el proceso de instalaci&oacute;n sea m&aacute;s eficiente.<\/p><p>Si encuentras dificultades durante la configuraci&oacute;n, nuestro <strong>asistente con IA Kodee <\/strong>est&aacute; disponible para guiarte en la gesti&oacute;n de tu instancia de WordPress. Simplemente escribe tus preguntas o describe tus necesidades y Kodee escribir&aacute; una gu&iacute;a paso a paso para ti.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/ar\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/blog.hostinger.io\/com-ar-tutoriales\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner-1024x300.png\" alt=\"\" class=\"wp-image-29287\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner.png 1024w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner-300x88.png 300w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner-150x44.png 150w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner-768x225.png 768w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2023\/02\/ES-VPS-hosting_in-text-banner-1536x450.png 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-como-instalar-wordpress-con-docker-compose\">C&oacute;mo instalar WordPress con Docker Compose<\/h2><p>Sigue estos pasos para instalar WordPress utilizando Docker. Antes de proceder, accede a la interfaz de l&iacute;nea de comandos (CLI) de tu VPS utilizando el <a href=\"\/ar\/tutoriales\/conectar-usando-terminal-putty-ssh\/\">cliente SSH PuTTY<\/a> o el terminal. Alternativamente, utiliza <strong>el terminal de navegador de Hostinger <\/strong>si necesitas una soluci&oacute;n m&aacute;s sencilla.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-instala-docker-y-docker-compose\">1. Instala Docker y Docker Compose<\/h3><p>Los usuarios de Hostinger pueden instalar Docker y Docker Compose en unos pocos clics, sin necesidad de comandos, utilizando la plantilla VPS preconfigurada. Este m&eacute;todo es m&aacute;s sencillo y adecuado para principiantes.<\/p><p>    <p class=\"warning\">\n        <strong>&iexcl;Atenci&oacute;n!<\/strong> La instalaci&oacute;n de una nueva plantilla VPS borrar&aacute; tus datos. Haz una copia de seguridad de los archivos importantes antes de proceder.    <\/p>\n    <\/p><p>Para ello, solo tienes que abrir la p&aacute;gina de gesti&oacute;n de tu VPS en <strong>hPanel <\/strong>y navegar hasta <strong>Sistema operativo y panel <\/strong>&rarr; <strong>Sistema operativo<\/strong>. Selecciona <strong>Docker <\/strong>y haz clic en <strong>Cambiar SO<\/strong>.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"325\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2024\/11\/cambiar-so-hpanel.png\" alt=\"Cambiar sistema operativo en hPanel\" class=\"wp-image-43701\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/cambiar-so-hpanel.png 1024w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/cambiar-so-hpanel-300x95.png 300w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/cambiar-so-hpanel-150x48.png 150w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/cambiar-so-hpanel-768x244.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Si quieres m&aacute;s flexibilidad a la hora de configurar la herramienta, <a href=\"\/ar\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\">instala Docker<\/a> y Docker Compose mediante comandos.<\/p><p>Ahora, comprueba si Docker y Docker Compose est&aacute;n configurados correctamente utilizando los siguientes comandos:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker --version\ndocker-compose --version<\/pre><p>Si estas herramientas funcionan correctamente, tu CLI mostrar&aacute; su n&uacute;mero de versi&oacute;n:<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"815\" height=\"132\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2024\/11\/image-22.png\" alt=\"Ejemplo de CLI mostrando n&uacute;mero de versi&oacute;n de Docker\" class=\"wp-image-43702\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-22.png 815w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-22-300x49.png 300w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-22-150x24.png 150w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-22-768x124.png 768w\" sizes=\"(max-width: 815px) 100vw, 815px\" \/><\/figure><\/div><h3 class=\"wp-block-heading\" id=\"h-2-configura-el-directorio-de-tu-proyecto\">2. Configura el directorio de tu proyecto<\/h3><p>Crea un nuevo directorio de proyecto para alojar todos tus archivos de Docker y WordPress utilizando este comando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir wordpress<\/pre><p>Por defecto, el comando crear&aacute; la carpeta <strong>wordpress <\/strong>en el directorio personal de tu usuario actual. Puedes crearla en otra ubicaci&oacute;n o utilizar un nombre diferente.<\/p><p>A continuaci&oacute;n, abre la carpeta utilizando el comando que aparece a continuaci&oacute;n:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd wordpress<\/pre><p>Una vez dentro, puedes empezar a configurar Docker y WordPress.<\/p><h3 class=\"wp-block-heading\" id=\"h-3-crea-un-archivo-docker-compose\">3. Crea un archivo Docker Compose<\/h3><p>El <strong>archivo Docker Compose <\/strong>proporciona informaci&oacute;n sobre los componentes de software que debes instalar en tu contenedor. En este caso, especifica la configuraci&oacute;n para WordPress y la aplicaci&oacute;n de base de datos.<\/p><p>Para crear un archivo Docker Compose, ejecuta el siguiente comando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano docker-compose.yml<\/pre><p>Pega la siguiente configuraci&oacute;n. Sustituye el nombre de usuario, contrase&ntilde;a y nombre de la base de datos por el valor que desees.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">version: \"3\" \nservices:\n  db:\n    image: mysql:latest\n    restart: always\n    environment:\n      MYSQL_ROOT_PASSWORD: MySQLRootPassword\n      MYSQL_DATABASE: MySQLDatabaseName\n      MYSQL_USER: MySQLUsername\n      MYSQL_PASSWORD: MySQLUserPassword\n\n  wordpress:\n    depends_on:\n      - db\n    image: wordpress:latest\n    restart: always\n    ports:\n      - \"80:80\"\n    environment:\n      WORDPRESS_DB_HOST: db:3306\n      WORDPRESS_DB_USER: MySQLUsername\n      WORDPRESS_DB_PASSWORD: MySQLUserPassword\n      WORDPRESS_DB_NAME: MySQLDatabaseName\n    volumes:\n      - \".\/:\/var\/www\/html\"\n\n  phpmyadmin:\n    image: phpmyadmin\/phpmyadmin\n    restart: always\n    ports:\n      - \"8080:80\"\n    environment:\n      PMA_HOST: db\n      PMA_USER: MySQLUsername\n      PMA_PASSWORD: MySQLUserPassword\n\nvolumes:\n  mysql: {}<\/pre><p>Guarda los cambios y vuelve a la pantalla principal pulsando <strong>Ctrl + X <\/strong>&rarr; <strong>Y <\/strong>&rarr; <strong>Intro<\/strong>.<\/p><h3 class=\"wp-block-heading\" id=\"h-4-inicia-el-contenedor-docker\">4. Inicia el contenedor Docker<\/h3><p>Ejecuta Docker Compose utilizando este comando para instalar y lanzar WordPress en un contenedor. Recuerda que s&oacute;lo funciona cuando est&aacute;s dentro del directorio del proyecto:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker-compose up -d<\/pre><p>Docker Compose extraer&aacute; im&aacute;genes de <a href=\"https:\/\/docs.docker.com\/docker-hub\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a> seg&uacute;n lo especificado en tu archivo <strong>YAML<\/strong>, configurar&aacute; el contenedor y establecer&aacute; la conexi&oacute;n de red. Dependiendo de tu velocidad de Internet, este proceso de configuraci&oacute;n puede tardar unos minutos.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"888\" height=\"148\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2024\/11\/image-23.png\" alt=\"Estado Listo en la CLI \" class=\"wp-image-43703\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-23.png 888w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-23-300x50.png 300w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-23-150x25.png 150w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-23-768x128.png 768w\" sizes=\"(max-width: 888px) 100vw, 888px\" \/><\/figure><p>Una vez terminado, deber&iacute;as ver el estado <strong>Done <\/strong>y volver a la pantalla principal.<\/p><h3 class=\"wp-block-heading\" id=\"h-5-accede-a-la-instalacion-de-wordpress\">5. Accede a la instalaci&oacute;n de WordPress<\/h3><p>Con tu contenedor Docker en funcionamiento, ya puedes acceder a la nueva instalaci&oacute;n de WordPress a trav&eacute;s de tu navegador web. Como tu nombre de dominio ya est&aacute; apuntado al VPS, simplemente introd&uacute;celo en la barra de direcciones del navegador.<\/p><p>Esto te llevar&aacute; al asistente de configuraci&oacute;n de WordPress. Elige el idioma que prefieras y haz clic en <strong>Continuar<\/strong>.<\/p><p>A continuaci&oacute;n, rellena la informaci&oacute;n necesaria sobre tu sitio, incluyendo el t&iacute;tulo del sitio, nombre de usuario, contrase&ntilde;a y direcci&oacute;n de correo electr&oacute;nico. Una vez completado, pulsa <strong>Instalar WordPress<\/strong>.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1036\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2024\/11\/image-24.png\" alt=\"P&aacute;gina de ajustes iniciales de WordPress\" class=\"wp-image-43704\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-24.png 1024w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-24-297x300.png 297w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-24-1013x1024.png 1013w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-24-148x150.png 148w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/image-24-768x777.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Despu&eacute;s, haz clic en <strong>Iniciar sesi&oacute;n <\/strong>para entrar en el panel de control de WordPress. Utiliza las credenciales que acabas de crear para acceder a tu panel de administraci&oacute;n.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"362\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2024\/11\/panel-control-wordpress.png\" alt=\"Panel de control de WordPress\" class=\"wp-image-43705\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/panel-control-wordpress.png 1024w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/panel-control-wordpress-300x106.png 300w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/panel-control-wordpress-150x53.png 150w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/panel-control-wordpress-768x271.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\" id=\"h-6-personaliza-tu-configuracion-docker\">6. Personaliza tu configuraci&oacute;n Docker<\/h3><p>Para entornos de producci&oacute;n, necesitar&aacute;s configuraciones adicionales para que tu p&aacute;gina web de WordPress sea segura y su rendimiento est&eacute; optimizado. A continuaci&oacute;n se indican las personalizaciones clave para desplegar WordPress utilizando Docker:<\/p><p><strong>Utilizar archivos de entorno<\/strong><\/p><p>Para proteger los datos confidenciales, evita codificar credenciales como nombres de usuario y contrase&ntilde;as de bases de datos en tu archivo Docker Compose. En su lugar, almacena estos valores en un archivo de entorno (<strong>.env<\/strong>).<\/p><p>En tu directorio <strong>de wordpress<\/strong>, crea un archivo <strong>.env<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">nano .env<\/pre><p>Define las credenciales de tu base de datos de WordPress en el archivo <strong>.env<\/strong>, sustituyendo los marcadores de posici&oacute;n por tus propios valores:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">MYSQL_ROOT_PASSWORD=MySQLRootPassword\nMYSQL_DATABASE=MySQLDatabaseName\nMYSQL_USER=MySQLUsername\nMYSQL_PASSWORD=MySQLUserPassword<\/pre><p>Guarda el archivo y, a continuaci&oacute;n, actualiza el archivo <strong>docker-compose.yml <\/strong>para utilizar estas variables de entorno:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">db:\n  image: mysql:latest\n  restart: always\n  environment:\n    MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}\n    MYSQL_DATABASE: ${MYSQL_DATABASE}\n    MYSQL_USER: ${MYSQL_USER}\n    MYSQL_PASSWORD: ${MYSQL_PASSWORD}<\/pre><p>Guarda los cambios y reinicia Docker Compose para aplicar las nuevas configuraciones:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker-compose up -d<\/pre><p><strong>Obtener certificados SSL<\/strong><\/p><p>Un certificado SSL es importante para proteger los datos de los usuarios y mejorar el posicionamiento en los motores de b&uacute;squeda. Para activar los certificados SSL autom&aacute;ticos, <a href=\"\/ar\/tutoriales\/como-configurar-proxy-inverso-nginx\">a&ntilde;ade un proxy NGINX<\/a> con Let&rsquo;s Encrypt en tu archivo <strong>docker-compose.yml<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">services:\n  nginx-proxy:\n    image: jwilder\/nginx-proxy\n    container_name: nginx-proxy\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n    volumes:\n      - \/var\/run\/docker.sock:\/tmp\/docker.sock:ro\n  letsencrypt-nginx-proxy-companion:\n    image: jrcs\/letsencrypt-nginx-proxy-companion\n    container_name: letsencrypt\n    environment:\n      NGINX_PROXY_CONTAINER: nginx-proxy\n    volumes:\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock:ro\n      - .\/certs:\/etc\/nginx\/certs\n      - .\/vhost.d:\/etc\/nginx\/vhost.d\n      - .\/html:\/usr\/share\/nginx\/html<\/pre><p>A continuaci&oacute;n, elimina la asignaci&oacute;n de puertos del servicio <strong>WordPress<\/strong> para evitar conflictos con <strong>nginx-proxy<\/strong>. Sustituye <strong>tu_email <\/strong>y <strong>tu_dominio.com <\/strong>por tus credenciales reales.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">wordpress:\n  image: wordpress:latest\n  labels:\n    - \"VIRTUAL_HOST=tu_dominio.com\"\n    - \"LETSENCRYPT_HOST=tu_dominio.com\"\n    - \"LETSENCRYPT_EMAIL=tu_email@tu_dominio.com\"<\/pre><p>En el mismo servicio <strong>WordPress <\/strong>, monta s&oacute;lo el directorio <strong>wp-content<\/strong> para que s&oacute;lo se compartan los archivos necesarios entre el host y el contenedor:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">volumes:\n  - .\/wp-content:\/var\/www\/html\/wp-content<\/pre><p>Este es el contenido final de<strong> docker-compose.yml <\/strong>despu&eacute;s de utilizar variables de entorno y a&ntilde;adir soporte SSL con NGINX:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">version: \"3\"\n\nservices:\n  db:\n    image: mysql:latest\n    restart: always\n    environment:\n      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}\n      MYSQL_DATABASE: ${MYSQL_DATABASE}\n      MYSQL_USER: ${MYSQL_USER}\n      MYSQL_PASSWORD: ${MYSQL_PASSWORD}\n    volumes:\n      - mysql:\/var\/lib\/mysql\n\n  wordpress:\n    depends_on:\n      - db\n    image: wordpress:latest\n    restart: always\n    environment:\n      WORDPRESS_DB_HOST: db:3306\n      WORDPRESS_DB_USER: ${MYSQL_USER}\n      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}\n      WORDPRESS_DB_NAME: ${MYSQL_DATABASE}\n    volumes:\n      - .\/wp-content:\/var\/www\/html\/wp-content\n    labels:\n      - \"VIRTUAL_HOST=your_domain.com\"\n      - \"LETSENCRYPT_HOST=your_domain.com\"\n      - \"LETSENCRYPT_EMAIL=your_email@your_domain.com\"\n\n  phpmyadmin:\n    image: phpmyadmin\/phpmyadmin\n    restart: always\n    ports:\n      - \"8080:80\"\n    environment:\n      PMA_HOST: db\n      PMA_USER: ${MYSQL_USER}\n      PMA_PASSWORD: ${MYSQL_PASSWORD}\n\n  nginx-proxy:\n    image: jwilder\/nginx-proxy\n    container_name: nginx-proxy\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n    volumes:\n      - \/var\/run\/docker.sock:\/tmp\/docker.sock:ro\n      - .\/certs:\/etc\/nginx\/certs\n      - .\/vhost.d:\/etc\/nginx\/vhost.d\n      - .\/html:\/usr\/share\/nginx\/html\n\n  letsencrypt-nginx-proxy-companion:\n    image: jrcs\/letsencrypt-nginx-proxy-companion\n    container_name: letsencrypt\n    environment:\n      NGINX_PROXY_CONTAINER: nginx-proxy\n    volumes:\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock:ro\n      - .\/certs:\/etc\/nginx\/certs\n      - .\/vhost.d:\/etc\/nginx\/vhost.d\n      - .\/html:\/usr\/share\/nginx\/html\n\nvolumes:\n  mysql: {}<\/pre><p>No olvides guardar estos cambios y reiniciar Docker Compose despu&eacute;s:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker-compose up -d<\/pre><h3 class=\"wp-block-heading\" id=\"h-7-gestiona-y-escala-wordpress-con-docker\">7. Gestiona y escala WordPress con Docker<\/h3><p>Despu&eacute;s de ejecutar WordPress en Docker durante un tiempo, escala tu configuraci&oacute;n para optimizar su rendimiento y haz copias de seguridad peri&oacute;dicas de tus archivos para mantener la integridad de los datos. A continuaci&oacute;n c&oacute;mo hacerlo:<\/p><p><strong>Escalar contenedores de WordPress<\/strong><\/p><p>A medida que crezca el tr&aacute;fico de tu sitio, considera la posibilidad de escalar tu servicio WordPress para ejecutar varios contenedores. Esto te permite distribuir uniformemente las peticiones de los usuarios entre los distintos contenedores para obtener un rendimiento y un tiempo de actividad &oacute;ptimos.<\/p><p>En tu archivo Docker Compose, especifica el n&uacute;mero deseado de r&eacute;plicas, por ejemplo <strong>3<\/strong>, para a&ntilde;adir m&aacute;s instancias de tu contenedor WordPress:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> wordpress:\n    depends_on:\n      - db\n    image: wordpress:latest\n    restart: always\n    ports:\n      - \"80:80\"\n  environment:\n    WORDPRESS_DB_HOST: db:3306\n    WORDPRESS_DB_USER: ${MYSQL_USER}\n    WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}\n    WORDPRESS_DB_NAME: ${MYSQL_DATABASE}\n  volumes:\n    - \".\/:\/var\/www\/html\"\n  deploy:\n    replicas: 3<\/pre><p>Aplica tus cambios ejecutando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker-compose up -d --scale wordpress=3<\/pre><p>Docker iniciar&aacute; ahora contenedores adicionales de WordPress y distribuir&aacute; el tr&aacute;fico uniformemente entre ellos.<\/p><p><strong>Copia de seguridad de los archivos de WordPress<\/strong><\/p><p>Para proteger tu sitio de WordPress contra la p&eacute;rdida o corrupci&oacute;n de datos, debes hacer copias de seguridad tanto de los archivos de WordPress como de la base de datos.<\/p><p>Dado que Docker monta el directorio de WordPress como un volumen, puedes hacer una copia de seguridad de este directorio utilizando un simple comando como &eacute;ste:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cp -r \/path\/to\/wordpress \/path\/to\/backup\/location<\/pre><p>Para hacer una copia de seguridad de tu base de datos MySQL, ejecuta el siguiente comando. Sustituye <strong>[db_container_name]<\/strong>, <strong>[MYSQL_USER], [MYSQL_PASSWORD] <\/strong>y <strong>[MYSQL_DATABASE] <\/strong>por el nombre y las credenciales reales de tu contenedor de base de datos:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker exec [db_container_name] \/usr\/bin\/mysqldump -u [MYSQL_USER] -p[MYSQL_PASSWORD] [MYSQL_DATABASE] &amp;gt; backup.sql<\/pre><p>Este comando crea un volcado de la base de datos, que puedes restaurar m&aacute;s tarde si es necesario.<\/p><p>Alternativamente, los clientes de VPS de Hostinger pueden utilizar nuestras herramientas de copia de seguridad integradas para hacer copias de seguridad y restaurar datos f&aacute;cilmente.&nbsp;<\/p><p>Para acceder a estas funciones, ve a <strong>Respaldos y monitoreo &rarr; Snapshots y copias de seguridad <\/strong>en la barra lateral izquierda del panel de control de tu VPS.<\/p><p>A continuaci&oacute;n, elige entre crear una instant&aacute;nea para capturar tu configuraci&oacute;n actual o restaurar los datos anteriores a partir de una copia de seguridad semanal automatizada.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"674\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2024\/11\/snapshots-hpanel.png\" alt=\"Secci&oacute;n de Respaldos y monitoreo en hPanel\" class=\"wp-image-43706\" srcset=\"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/snapshots-hpanel.png 1024w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/snapshots-hpanel-300x198.png 300w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/snapshots-hpanel-150x99.png 150w, https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-content\/uploads\/sites\/38\/2024\/11\/snapshots-hpanel-768x506.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi&oacute;n<\/h2><p>En este art&iacute;culo, has aprendido a instalar y configurar WordPress utilizando Docker en un VPS Ubuntu.&nbsp;<\/p><p>Desde la configuraci&oacute;n de Docker Compose hasta la personalizaci&oacute;n para entornos de producci&oacute;n, ahora tienes una configuraci&oacute;n de WordPress totalmente funcional en un entorno en contenedores.<\/p><p>Despu&eacute;s de ejecutar WordPress utilizando Docker, considera la posibilidad de optimizar a&uacute;n m&aacute;s tu sitio, por ejemplo utilizando una red de distribuci&oacute;n de contenidos (CDN). Tambi&eacute;n puedes configurar distintos contenedores Docker si decides alojar otras aplicaciones en el mismo VPS.<\/p><p>Si tienes alguna pregunta o quieres compartir tu experiencia desarrollando sitios web de WordPress con Docker, no dudes en dejar un comentario a continuaci&oacute;n. &iexcl;Buena suerte!<\/p><h2 class=\"wp-block-heading\" id=\"h-wordpress-en-docker-preguntas-frecuentes\">WordPress en Docker &ndash; Preguntas frecuentes<\/h2><p>Esta secci&oacute;n cubre algunas de las preguntas m&aacute;s comunes sobre c&oacute;mo instalar WordPress en Docker.&nbsp;<\/p><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-69446a091ed60\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;Cu&aacute;les son las ventajas de utilizar Docker para WordPress?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Con Docker, puedes desplegar y escalar tu entorno WordPress seg&uacute;n tus necesidades. Docker a&iacute;sla las dependencias, facilitando la actualizaci&oacute;n, copia de seguridad y migraci&oacute;n de tu sitio WordPress de forma eficiente.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-69446a091ed63\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;Puedo ejecutar varios sitios de WordPress en un &uacute;nico servidor con Docker?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>S&iacute;, Docker te permite ejecutar varios sitios web de WordPress en un &uacute;nico servidor utilizando contenedores independientes para cada sitio.&nbsp;u003cbr \/u003eu003cbr \/u003eConfigura cada contenedor con puertos, vol&uacute;menes y conexiones a bases de datos &uacute;nicos para aislarlos.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-69446a091ed64\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&iquest;C&oacute;mo configuro un contenedor Docker de WordPress?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Para configurar un contenedor Docker de WordPress, utiliza un archivo Docker Compose para definir servicios, puertos y variables de entorno.&nbsp;u003cbr \/u003eu003cbr \/u003ePara los datos sensibles, como las credenciales de la base de datos, sugerimos almacenarlos en un archivo u003cstrongu003e.env u003c\/strongu003evinculado al archivo Compose.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-\"><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Instalar WordPress en un servidor virtual privado (VPS) con Ubuntu suele requerir LAMP (Linux, Apache, MySQL, PHP). Sin embargo, tambi&eacute;n puedes configurar la plataforma utilizando Docker, una herramienta de contenerizaci&oacute;n que empaqueta aplicaciones y sus dependencias juntas. Al utilizar Docker, la instalaci&oacute;n de WordPress se simplifica, ya que se ejecuta a partir de im&aacute;genes preconstruidas [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/ar\/tutoriales\/instalar-wordpress-en-docker\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":353,"featured_media":46433,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"C\u00f3mo instalar WordPress con Docker: 7 pasos sencillos","rank_math_description":"Aprende a instalar WordPress en Docker con este tutorial paso a paso. Configura tu VPS y pon en marcha tu sitio web en minutos.","rank_math_focus_keyword":"instalar wordpress en docker","footnotes":""},"categories":[5700],"tags":[],"class_list":["post-43699","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/run-docker-wordpress","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/wordpress-docker","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/docker-wordpress","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/instalar-wordpress-en-docker","default":0},{"locale":"ja-JP","link":"https:\/\/www.hostinger.com\/jp\/tutorials\/run-docker-wordpress","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/run-docker-wordpress","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/run-docker-wordpress","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/run-docker-wordpress","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/instalar-wordpress-en-docker","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/instalar-wordpress-en-docker","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/instalar-wordpress-en-docker","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wordpress-docker","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/run-docker-wordpress","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/run-docker-wordpress","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/run-docker-wordpress","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/run-docker-wordpress","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/43699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/users\/353"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/comments?post=43699"}],"version-history":[{"count":5,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/43699\/revisions"}],"predecessor-version":[{"id":46432,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/posts\/43699\/revisions\/46432"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/media\/46433"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/media?parent=43699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/categories?post=43699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-json\/wp\/v2\/tags?post=43699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}