Como crear un contenedor docker con Wordpress, MariadB y phpmyadmin

17 February 2025

services:
  # Servicio de Base de Datos (MariaDB)
  db:
    image: mariadb:latest  # Imagen oficial de MariaDB
    container_name: wordpress_db
    restart: always  # Reinicia automáticamente en caso de fallo
    environment:
      MYSQL_ROOT_PASSWORD: "contraseña"  # 🔹 Cambia por una contraseña segura
      MYSQL_DATABASE: "wordpress"  # 🔹 Nombre de la base de datos a usar
      MYSQL_USER: "wpuser"  # 🔹 Nombre de usuario para WordPress
      MYSQL_PASSWORD: "contraseña"  # 🔹 Contraseña para el usuario de WordPress
    volumes:
      - /docker/wordpress/db_data:/var/lib/mysql  # 🔹 Ruta donde se guardará la base de datos en el servidor
    networks:
      - wp_network  # Conecta la base de datos con WordPress en una red interna

  # Servicio de WordPress
  wordpress:
    image: wordpress:latest  # Imagen oficial de WordPress
    container_name: wordpress_site
    restart: always
    depends_on:
      - db  # Asegura que el servicio de base de datos se inicie primero
    environment:
      WORDPRESS_DB_HOST: "db:3306"  # Conexión a la base de datos
      WORDPRESS_DB_USER: "wpuser"  # 🔹 Debe coincidir con el usuario de la DB
      WORDPRESS_DB_PASSWORD: "contraseña"  # 🔹 Debe coincidir con la contraseña de la DB
      WORDPRESS_DB_NAME: "wordpress"  # 🔹 Debe coincidir con el nombre de la DB
    volumes:
      - /docker/wordpress/wp_data:/var/www/html  # 🔹 Ruta donde se guardarán los archivos de WordPress en el servidor
    ports:
      - "8080:80"  # 🔹 Puerto donde estará accesible WordPress (http://IP_DEL_SERVIDOR:8080)
    networks:
      - wp_network  # Conecta WordPress con la base de datos en la misma red

  # phpMyAdmin para gestionar la base de datos
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: wp_phpmyadmin
    restart: always
    depends_on:
      - db
    environment:
      PMA_HOST: "db"
      MYSQL_ROOT_PASSWORD: "contraseña"  # 🔹 Debe coincidir con la contraseña de MariaDB
    ports:
      - "8081:80"  # 🔹 Acceder a phpMyAdmin en http://IP_DEL_SERVIDOR:8081
    networks:
      - wp_network

# Red interna para la comunicación entre WordPress y MariaDB
networks:
  wp_network:
    driver: bridge  # Tipo de red: Bridge (predeterminada)

Check out more IT nuggets at www.ruizpelaez.com.


A bit (1,0) about me:

IT Admin with positive attitude, self-taught, hard worker,  problem solver.  Always improving and learning new skills.