---
title: "Instalación con Docker"
description: "Instalar Magento con Docker"
type: "docs"
category: "doc"
tags: []
authors: [Anonymous]
date: "2026-09-25"
last_update: "2026-09-25"
time_minutes: 4
draft: false
unlisted: false
url: "https://www.billmysales.com/docs/datasources/magento/docker"
---

# Instalar Magento con Docker

Sigue la [guía de los stacks de Docker](https://www.billmysales.com/docs/stacks) para instalar Magento con nuestro [stack](https://github.com/BillMySales/billmysales-docker-magento) y ten en cuenta lo propio de esta plataforma. El detalle completo está en el README del repositorio.

El stack instala [Mage-OS](https://mage-os.org), la distribución comunitaria de Magento Open Source, que no requiere claves de Adobe Marketplace.

## Recursos

Es el stack más exigente: asigna **8 GB de RAM a Docker** (con 4 GB el sistema detuvo procesos durante la instalación) y reserva unos **5 GB de disco** para imágenes y volúmenes, más espacio para las construcciones. En reposo usa cerca de 1,4 GiB, de los cuales OpenSearch ocupa unos 960 MiB. El primer `up` construye la imagen y tarda entre 5 y 7 minutos.

OpenSearch bloquea la creación de índices cuando su disco supera el 95 % de uso, así que no dejes que el servidor se quede sin espacio.

## Variables obligatorias

| Variable | Qué debe contener |
|---|---|
| `MAGE_URL` | URL pública de la tienda, por ejemplo `https://tienda.example.com`. |
| `SITE_ADDRESS` | El dominio de la tienda, por ejemplo `tienda.example.com`. |
| `DB_PASSWORD` y `DB_ROOT_PASSWORD` | Contraseñas de la base de datos. |
| `MAGE_ADMIN_PASSWORD` | Contraseña del administrador: letras y números, de al menos 7 caracteres. |
| `MAGE_ADMIN_EMAIL` | Correo del administrador. El usuario, la contraseña y el correo del administrador solo se usan al instalar: si los cambias después en el `.env`, la cuenta no cambia (hazlo desde el panel). |
| `MAGE_ADMIN_PATH` | Ruta del panel de administración (letras, números y guiones bajos). Usa una difícil de adivinar, por ejemplo `admin_$(openssl rand -hex 4)`. |
| `SMTP_HOST` | **Recomendada:** el stack arranca sin ella, pero la plataforma no podrá enviar correos. Servidor SMTP. Completa también `SMTP_PORT`, `SMTP_SECURE` (por defecto `tls`), `SMTP_USER`, `SMTP_PASSWORD` y `SMTP_FROM` según tu proveedor. |

## Configuración inicial de la tienda

La tienda se crea con país `CL`, moneda `CLP` y zona horaria `America/Santiago`, en idioma `en_US`. Cambia `MAGE_COUNTRY`, `MAGE_CURRENCY`, `MAGE_LOCALE`, `PHP_TIMEZONE` (y el nombre en `MAGE_STORE_NAME`) **antes** del primer arranque: estos valores solo se aplican en la instalación inicial y después se modifican desde el panel. `PHP_TIMEZONE` además define la zona horaria de PHP en cada arranque.

Solo viene instalado `en_US`. Otros idiomas requieren paquetes de idioma, y cada idioma o tema que use la tienda o un administrador debe estar en `MAGEOS_LOCALES` y `MAGEOS_THEMES`, porque el contenido estático se genera al construir la imagen.

## Acceso

Cuando `setup` termina, la tienda queda disponible en tu dominio y el panel de administración en `/<MAGE_ADMIN_PATH>`, con el usuario `admin` (configurable con `MAGE_ADMIN_USER`).

La autenticación de dos factores está activa: en el primer ingreso el panel te pide configurar un proveedor (Google Authenticator por defecto) mediante un enlace que llega por correo, así que configura SMTP antes de ingresar.

## Actualizaciones

Mage-OS se actualiza cambiando `MAGEOS_VERSION` en el `.env` y ejecutando:

```shell
docker compose up -d --build
```

Se construye una imagen nueva y `setup` sincroniza el código y actualiza la base de datos (`setup:upgrade`). Respalda antes de actualizar. Lo mismo aplica si reconstruyes la imagen con otros módulos, temas o idiomas.

## Restaurar un respaldo

Los respaldos incluyen la base de datos, los archivos subidos (`pub/media`) y `app/etc/env.php`, que guarda la clave de cifrado necesaria para leer los datos secretos almacenados. El código viene de la imagen y los índices de búsqueda se regeneran. Para restaurar uno:

```shell
docker compose stop magento cron
docker compose run --rm --no-deps backup restore <fecha>
docker compose up -d
docker compose run --rm console cache:flush
docker compose run --rm console indexer:reindex
```

El último comando solo es necesario si los resultados de búsqueda quedan desactualizados.

## Notas

- Para abrir una consola en el contenedor usa `docker compose exec -u www-data magento sh`: los archivos creados como root en `var/` o `pub/media` dejan a Magento con errores hasta el siguiente `setup`.
- Los comandos de `bin/magento` se ejecutan con `docker compose run --rm console <comando>`.

## Siguiente paso

Con la tienda funcionando, instala el plugin de BillMySales y conéctalo a tu pasarela de facturación siguiendo la [configuración inicial](https://www.billmysales.com/docs/datasources/magento/configuracion-inicial).



---
Última actualización el 25/09/2026

