<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>docker &#8211; danisanchez.net</title>
	<atom:link href="https://danisanchez.net/tag/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://danisanchez.net</link>
	<description></description>
	<lastBuildDate>Tue, 07 Mar 2023 17:43:38 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://danisanchez.net/wp-content/uploads/2026/07/cropped-favicon-32x32.png</url>
	<title>docker &#8211; danisanchez.net</title>
	<link>https://danisanchez.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Importar un proyecto WordPress en un contenedor Docker</title>
		<link>https://danisanchez.net/importar-un-proyecto-wordpress-en-un-contenedor-docker/</link>
					<comments>https://danisanchez.net/importar-un-proyecto-wordpress-en-un-contenedor-docker/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Tue, 07 Mar 2023 17:43:38 +0000</pubDate>
				<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[docker]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=13792</guid>

					<description><![CDATA[En este vídeo-taller veremos cómo importar un proyecto real de WordPress en un contenedor Docker local. En resumen los pasos serían: El comando para importar la base de datos desde terminal: Taller en Vídeo]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En este vídeo-taller veremos cómo importar un proyecto real de WordPress en un contenedor Docker local.</p>



<p class="wp-block-paragraph">En resumen los pasos serían:</p>



<ul class="wp-block-list">
<li>Levantar un proyecto WordPress limpio en Docker (<a href="https://danisanchez.net/instalar-wordpress-mysql-phpmyadmin-desde-docker-compose/" data-type="post" data-id="13746">ver tutorial</a>).</li>



<li>Reemplazar el contenido del wp-content.</li>



<li>Editar el archivo wp-config.php.</li>



<li>Importar la base de datos.</li>



<li>Editar las URL desde phpMyAdmin.</li>
</ul>



<p class="wp-block-paragraph">El comando para importar la base de datos desde terminal:</p>



<pre class="wp-block-code"><code>sudo docker exec -i contenedor-mysql-name mysql -uroot -pclaveroot bbdd-name &lt; bbdd.sql</code></pre>



<ul class="wp-block-list">
<li>Sustituye <strong>contenedor-mysql-name</strong> por el nombre de tu contenedor MySQL en Docker.</li>



<li>Sustituye <strong>claveroot</strong> por tu clave de usuario root en MySQL.</li>



<li>Sustituye <strong>bbdd-name</strong> por el nombre de tu base de datos en Docker.</li>



<li>Sustituye <strong>bbdd.sql</strong> por el nombre del archivo SQL de la base de datos a importar.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Taller en Vídeo</p>
</blockquote>



<iframe width="100%" height="400" src="https://www.youtube-nocookie.com/embed/oZZQAkwQiBA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/importar-un-proyecto-wordpress-en-un-contenedor-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar WordPress + MySQL + phpMyAdmin desde Docker Compose</title>
		<link>https://danisanchez.net/instalar-wordpress-mysql-phpmyadmin-desde-docker-compose/</link>
					<comments>https://danisanchez.net/instalar-wordpress-mysql-phpmyadmin-desde-docker-compose/#comments</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Fri, 20 Jan 2023 17:35:36 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=13746</guid>

					<description><![CDATA[En este artículo te dejaré mi receta, es decir el docker-compose.yml que uso para levantar una instalación de WordPress con MySQL y phpMyAdmin y desarrollar un proyecto de forma local que luego puedas migrar fácilmente a un servidor web. No nos vamos a parar a explicar qué es Docker ni cómo se usa, hay centenares [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En este artículo te dejaré mi <em>receta</em>, es decir el docker-compose.yml que uso para levantar una instalación de WordPress con MySQL y phpMyAdmin y desarrollar un proyecto de forma local que luego puedas migrar fácilmente a un servidor web.</p>



<p class="wp-block-paragraph">No nos vamos a parar a explicar qué es Docker ni cómo se usa, hay centenares de artículos que ya hablan de esto y doy por hecho que ya tienes algunas nociones sobre este servicio de contenedores.</p>



<h2 class="wp-block-heading">1. Instalar Docker y Docker Compose</h2>



<p class="wp-block-paragraph">Para este artículo nos basaremos en GNU/Linux, que es el habitat natural de docker. Lo primero es acudir a tu repositorio y descargar los paquetas <em>docker</em> y <em>docker-compose</em>.</p>



<h2 class="wp-block-heading">2. Configurar el archivo docker-compose.yml</h2>



<p class="wp-block-paragraph">Elige un directorio para tu contenedor y crea un archivo docker-compose.yml como este (luego iremos viendo cada apartado, pero este sería el archivo completo):</p>



<pre class="wp-block-code"><code>networks:
    miproyecto-wordpress-net:
        driver: bridge

services:
    mysql:
        image: mariadb:latest
        container_name: miproyecto-mysql
        tty: true
        ports:
            - "4225:3306"
        volumes:
            - "./var/libclea/mysql/:/var/lib/mysql"
        environment:
            MYSQL_ROOT_PASSWORD: clave_root_base_datos
            MYSQL_DATABASE: nombre_base_datos
            MYSQL_USER: usuario_base_datos
            MYSQL_PASSWORD: clave_usuario_base_datos
        networks:
            - miproyecto-wordpress-net

    server:
        image: wordpress:latest
        container_name: miproyecto-wordpress
        ports:
            - "4282:80"
        volumes:
            - "./var/www/html/:/var/www/html"
        environment:
            WORDPRESS_DB_USER: usuario_base_datos
            WORDPRESS_DB_PASSWORD: clave_usario_base_datos
            WORDPRESS_DB_NAME: nombre_base_datos
            WORDPRESS_DB_HOST: miproyecto-mysql
        depends_on:
            - mysql
        networks:
            - miproyecto-wordpress-net

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: miproyecto-phpmyadmin
        ports:
            - "4283:80"
        environment:
            PMA_HOST: miproyecto-mysql
            MYSQL_ROOT_PASSWORD: clave_root_base_datos
        depends_on:
            - mysql
        networks:
            - miproyecto-wordpress-net</code></pre>



<h3 class="wp-block-heading">2.1 Definir la red</h3>



<p class="wp-block-paragraph">Lo primero que hemos hecho es definir la red:</p>



<pre class="wp-block-code"><code>networks:
    miproyecto-wordpress-net:
        driver: bridge</code></pre>



<p class="wp-block-paragraph">Ya que estamos creando varios contenedores (MySQL, WordPress que ya incluye el servidor web y PHP) y phpMyAdmin, que aunque es opcional, nos vendrá muy bien para administrar la bases de datosde forma visual.</p>



<p class="wp-block-paragraph">El nombre elegido para la red es personalizable, miproyecto- puedes cambiarlo por el nombre que haya referencia al proyecto que vayas a alojar, y wordpress-net no es más que el nombre de referencia, ya que vamos a desplegar un proyecto en WordPress.</p>



<h3 class="wp-block-heading">2.2. Definir los servicios</h3>



<p class="wp-block-paragraph">Dentro de services: definimos los servicios que va a levantar la red, el primero <strong>MySQL</strong>:</p>



<pre class="wp-block-code"><code>mysql:
        image: mariadb:latest
        container_name: miproyecto-mysql
        tty: true
        ports:
            - "4208:3306"
        volumes:
            - "./var/libclea/mysql/:/var/lib/mysql"
        environment:
            MYSQL_ROOT_PASSWORD: clave_root_base_datos
            MYSQL_DATABASE: nombre_base_datos
            MYSQL_USER: usuario_base_datos
            MYSQL_PASSWORD: clave_usario_base_datos
        networks:
            - miproyecto-wordpress-net</code></pre>



<ul class="wp-block-list">
<li><strong>image</strong>: Contenedor de MariaDB en su última versión (puedes especificar una versión concreta si es necesario).</li>



<li><strong>container_name</strong>: Indicamos el nombre del contenedor (lo necesitaremos para conectar la base de datos con WordPress y phpMyAdmin por ejemplo).</li>



<li><strong>tty</strong>:  Déjalo en true si siquieres poder conectar con la base de datos desde un terminal para lanzar comandos SQL.</li>



<li><strong>ports</strong>: Por defecto MySQL utiliza el puerto 3306, pero puede ser que tengas varios contenedores (proyectos WordPress) corriendo a la vez y necesites asignar otros puertos por lo que indicamos por ejemplo el 4208:3306. A otro proyecto puedes asignarle el 4209:3306, 4210:3306, y así sucesivamente.</li>



<li><strong>volumes</strong>: Esto crea un directorio <em>/var/libclea/mysql</em> en tu directorio de docker con datos persistentes de MySQL, por lo que si necesitas lanzar de nuevo el docker-compose.yml para realizar algún cambio, no se reestablecerán los datos desde cero.</li>



<li><strong>environment</strong>: Variables de entorno que usamos para definir la contraseña de root , crear una base de datos y un usuario y contraseña para la base de datos. Establece los tuyos a tu gusto.</li>



<li><strong>networks</strong>: Especificamos el nombre de la red</li>
</ul>



<p class="wp-block-paragraph">Definimos el servicio de <strong>WordPress</strong> que ya integra el servidor web y PHP:</p>



<pre class="wp-block-code"><code>server:
        image: wordpress:latest
        container_name: miproyecto-wordpress
        ports:
            - "4282:80"
        volumes:
            - "./var/www/html/:/var/www/html"
        environment:
            WORDPRESS_DB_USER: usuario_base_datos
            WORDPRESS_DB_PASSWORD: clave_usario_base_datos
            WORDPRESS_DB_NAME: nombre_base_datos
            WORDPRESS_DB_HOST: miproyecto-mysql
        depends_on:
            - mysql
        networks:
            - miproyecto-wordpress-net</code></pre>



<ul class="wp-block-list">
<li><strong>image</strong>: Usamos la última imagen o versión de WordPress (wordpress:lastest).</li>



<li><strong>container_name</strong>: un nombre para identificar al contenedor.</li>



<li><strong>ports</strong>: Al igual que MySQL usa el puerto 3306, el servidor web usa el puerto 80, por lo que si tienes varios proyectos corriendo establecemos otros puertos como el 4283:80, 4284:80, 4285:80 etc.</li>



<li><strong>volumes</strong>: Creamos un directorio<em> /var/www/html</em> en nuestro directorio docker con datos persistentes de WordPress para que no se pierdan al ejecutar de nuevo el docker compose o al detener/iniciar el contenedor.</li>



<li><strong>environment</strong>: Variables de entorno que harán las conexiones de WordPress con la base de datos (es como una preconfiguración del wp-config.php). </li>



<li><strong>depends_on</strong>: En este caso, el contenedor de WordPress depende del contenedor de mysql, por lo que lo indicamos aquí.</li>



<li><strong>networks</strong>: ndicamos el nombre de la red.</li>
</ul>



<p class="wp-block-paragraph">Por último y aunque es opcional, añadiremos el contenedor de <strong>phpMyAdmin</strong> que nos vendrá muy bien para administrar la base de datos de WordPress:</p>



<pre class="wp-block-code"><code>phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: miproyecto-phpmyadmin
        ports:
            - "4283:80"
        environment:
            PMA_HOST: miproyecto-mysql
            MYSQL_ROOT_PASSWORD: clave_root_base_datos
        depends_on:
            - mysql
        networks:
            - miproyecto-wordpress-net</code></pre>



<ul class="wp-block-list">
<li><strong>image</strong>: Indicamos la imagen del contenedor de phpMyAdmin.</li>



<li><strong>container_name</strong>: Definimos un nombre para el contenedor.</li>



<li><strong>ports</strong>: Al igual que WordPress, phpMyAdmin se conecta al puerto 80. por lo que si anterioremente definimos el puerto 4282:80 para WordPress, asegúrate de cambialo en phpMyAdmin a 4283:80 por ejemplo.</li>



<li><strong>environments</strong>: Las variables de entorno donde definimos dónde está MySQL (indicando su nombre) y cual es la contraseña de root para que podamos conectarnos.</li>



<li><strong>depends_on</strong>: Este contenedor también depende de MySQL</li>



<li><strong>networks</strong>: Por último indicamos la red.</li>
</ul>



<h2 class="wp-block-heading">3. Levantar los servicios de Docker Compose</h2>



<p class="wp-block-paragraph">Ahora nos dirigimos al directorio de docker, donde tenemos el archivo docker-compose.yml y ejecutamos desde un terminal:</p>



<pre class="wp-block-code"><code>sudo docker-compose up -d</code></pre>



<p class="wp-block-paragraph">O en versiones actuales donde docker-compose ahora funciona como un plugin de docker:</p>



<pre class="wp-block-code"><code>sudo docker compose up -d</code></pre>



<p class="wp-block-paragraph">Esperamos a que se levanten todos los servicios y nos dirigimos al navegador web a la dirección localhost:4282 (o al puerto que hayas especificado para WordPress). En este momento nos aparecerá la pantalla de instalación de WordPress.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="709" src="https://danisanchez.net/wp-content/uploads/2023/01/02-docker-wordpress-1024x709.jpg" alt="" class="wp-image-13751" srcset="https://danisanchez.net/wp-content/uploads/2023/01/02-docker-wordpress-1024x709.jpg 1024w, https://danisanchez.net/wp-content/uploads/2023/01/02-docker-wordpress-300x208.jpg 300w, https://danisanchez.net/wp-content/uploads/2023/01/02-docker-wordpress-768x532.jpg 768w, https://danisanchez.net/wp-content/uploads/2023/01/02-docker-wordpress.jpg 1197w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Tras seleccionar tu idioma verás que esta vez no tienes que realizar la configuración de la base de datos, esto es gracias a la variables de entorno que hemos definido en nuestra <em>receta</em> docker-compose.yml y pasamos directamente a configurar los datos del sitio (nombre del sitio, usuario, contraseña&#8230;).</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="709" src="https://danisanchez.net/wp-content/uploads/2023/01/03-docker-wordpress-1024x709.jpg" alt="" class="wp-image-13752" srcset="https://danisanchez.net/wp-content/uploads/2023/01/03-docker-wordpress-1024x709.jpg 1024w, https://danisanchez.net/wp-content/uploads/2023/01/03-docker-wordpress-300x208.jpg 300w, https://danisanchez.net/wp-content/uploads/2023/01/03-docker-wordpress-768x532.jpg 768w, https://danisanchez.net/wp-content/uploads/2023/01/03-docker-wordpress.jpg 1197w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="709" src="https://danisanchez.net/wp-content/uploads/2023/01/04-docker-wordpress-1024x709.jpg" alt="" class="wp-image-13753" srcset="https://danisanchez.net/wp-content/uploads/2023/01/04-docker-wordpress-1024x709.jpg 1024w, https://danisanchez.net/wp-content/uploads/2023/01/04-docker-wordpress-300x208.jpg 300w, https://danisanchez.net/wp-content/uploads/2023/01/04-docker-wordpress-768x532.jpg 768w, https://danisanchez.net/wp-content/uploads/2023/01/04-docker-wordpress.jpg 1197w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Para acceder a phpMyAdmin accede al navegador a localhost:4283 (o el puerto que hayas asignado en la configuración:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="635" src="https://danisanchez.net/wp-content/uploads/2023/01/05-docker-wordpress-1024x635.jpg" alt="" class="wp-image-13754" srcset="https://danisanchez.net/wp-content/uploads/2023/01/05-docker-wordpress-1024x635.jpg 1024w, https://danisanchez.net/wp-content/uploads/2023/01/05-docker-wordpress-300x186.jpg 300w, https://danisanchez.net/wp-content/uploads/2023/01/05-docker-wordpress-768x476.jpg 768w, https://danisanchez.net/wp-content/uploads/2023/01/05-docker-wordpress.jpg 1164w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Introduce el usuario <strong>root</strong> y la contraseña que hayas asignado en las variables de entorno:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="637" src="https://danisanchez.net/wp-content/uploads/2023/01/06-docker-wordpress-1024x637.jpg" alt="" class="wp-image-13755" srcset="https://danisanchez.net/wp-content/uploads/2023/01/06-docker-wordpress-1024x637.jpg 1024w, https://danisanchez.net/wp-content/uploads/2023/01/06-docker-wordpress-300x187.jpg 300w, https://danisanchez.net/wp-content/uploads/2023/01/06-docker-wordpress-768x478.jpg 768w, https://danisanchez.net/wp-content/uploads/2023/01/06-docker-wordpress.jpg 1165w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Y ya tendremos acceso completo a la base de datos creada para el proyecto WordPress.</p>



<p class="wp-block-paragraph">Espero que te se sirva de utilidad y nos vemos en siguientes posts <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/instalar-wordpress-mysql-phpmyadmin-desde-docker-compose/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
