Category: DevOps y Cloud

  • Cómo instalar Docker paso a paso en Linux (Ubuntu)

    Docker es una de las herramientas más utilizadas en el desarrollo moderno para crear, desplegar y ejecutar aplicaciones dentro de contenedores. En este artículo aprenderás cómo instalar Docker en Linux Ubuntu paso a paso. 🐳

    Logo de Docker en Ubuntu
    Docker funcionando sobre Ubuntu Linux.

    🔧 Requisitos previos

    • Una máquina con Ubuntu 22.04 o superior.
    • Acceso a un usuario con permisos sudo.
    • Conexión a Internet.

    🐧 Instalación de Docker en Ubuntu

    Estos son los pasos oficiales recomendados por Docker para instalar el servicio en tu sistema:

    1️⃣ Actualizar el índice de paquetes

    sudo apt-get update
    sudo apt-get install ca-certificates curl gnupg

    2️⃣ Agregar la clave GPG oficial de Docker

    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
    sudo chmod a+r /etc/apt/keyrings/docker.asc

    3️⃣ Configurar el repositorio de Docker

    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
      https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update

    4️⃣ Instalar Docker Engine

    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    5️⃣ Verificar la instalación

    sudo docker --version

    Si ves algo como Docker version 27.0.3, build abc1234, ¡felicidades! 🎉 Docker está correctamente instalado en tu sistema.

    Docker CLI verificando la versión
    Verificación de la instalación de Docker desde la terminal.

    💡 Consejos adicionales

    • Ejecuta sudo systemctl enable docker para iniciar Docker automáticamente al encender el sistema.
    • Si deseas usar Docker sin sudo, agrega tu usuario al grupo Docker con:
      sudo usermod -aG docker $USER
    • Consulta la documentación oficial de Docker para Ubuntu para más detalles.

    “Los contenedores no son el futuro del desarrollo, son el presente.”

    Equipo de Apolanco DevOps

    ✅ Conclusión

    Ahora tienes Docker instalado y funcionando en tu entorno Linux. A partir de aquí, puedes crear contenedores, configurar docker-compose o desplegar tus propias aplicaciones.

    Contenedores Docker ejecutándose
    Ejemplo de contenedores Docker ejecutándose correctamente.
  • Cómo integré WordPress con React en Apolanco.com

    Cómo integré WordPress con React en Apolanco.com

    📝 OPCIÓN 1: Crear el post desde el panel de WordPress

    1. Entra a tu panel:
      👉 https://blog.apolanco.com/wp-admin
    2. Ve al menú Entradas → Añadir nueva
    3. Escribe algo como: Título: “Cómo integré WordPress con React en Apolanco.com” Contenido: En este artículo explico cómo usamos WordPress como un CMS sin cabeza (headless) para alimentar el blog de nuestra página React.
      Configuramos el acceso a la API REST y lo consumimos con fetch desde el frontend, logrando una integración rápida y moderna. Imagen destacada:
      Sube una que represente el tema (por ejemplo, una imagen de código o integración).
    4. Pulsa Publicar.

    Luego puedes acceder al JSON en:

    https://blog.apolanco.com/wp-json/wp/v2/posts
    

    Verás algo como esto:

    [
      {
        "id": 123,
        "date": "2025-11-02T17:45:00",
        "slug": "integrar-wordpress-con-react",
        "status": "publish",
        "title": {
          "rendered": "Cómo integré WordPress con React en Apolanco.com"
        },
        "content": {
          "rendered": "<p>En este artículo explico cómo usamos WordPress...</p>"
        },
        "excerpt": {
          "rendered": "<p>Usamos WordPress como CMS sin cabeza...</p>"
        },
        "featured_media": 45,
        "link": "https://blog.apolanco.com/como-integre-wordpress-con-react-en-apolanco-com/"
      }
    ]
    

    ⚙️ OPCIÓN 2: Crear el post por API REST (POST request)

    Si quieres hacerlo desde código (por ejemplo, para automatizar publicaciones), puedes usar la API REST de WordPress.

    Requisitos:

    • Un usuario con permisos de editor o administrador.
    • Un token de autenticación (o cookie de sesión).

    🔐 1. Obtener token JWT

    Primero, instala el plugin:

    JWT Authentication for WP REST API

    Luego, genera un token enviando un POST a:

    POST https://blog.apolanco.com/wp-json/jwt-auth/v1/token
    

    Con cuerpo:

    {
      "username": "tu_usuario",
      "password": "tu_contraseña"
    }
    

    Recibirás algo como:

    {
      "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
      "user_email": "[email protected]",
      "user_nicename": "admin",
      "user_display_name": "Administrador"
    }
    

    ✍️ 2. Crear un post con el token

    Luego haces un POST a:

    POST https://blog.apolanco.com/wp-json/wp/v2/posts
    

    Con headers:

    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
    Content-Type: application/json
    

    Y cuerpo:

    {
      "title": "Ejemplo de publicación creada por API",
      "content": "<p>Este post fue creado desde la API REST de WordPress usando React.</p>",
      "status": "publish"
    }
    

    Si todo está correcto, WordPress responderá con un JSON del post recién creado 🎉


    ⚛️ BONUS: Ejemplo desde React (fetch)

    fetch("https://blog.apolanco.com/wp-json/wp/v2/posts", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer ${token}`,
      },
      body: JSON.stringify({
        title: "Publicación automática desde React",
        content: "<p>Este post fue creado desde la app React.</p>",
        status: "publish",
      }),
    })
      .then((res) => res.json())
      .then((data) => console.log("✅ Post creado:", data))
      .catch((err) => console.error("❌ Error:", err));
    

    ¿Quieres que te deje también el ejemplo para editar o eliminar publicaciones vía API (con React o con curl)?
    Así tendrías un CRUD completo para tu blog.