Eliminar página de instalación avanzada
1
Home.md
1
Home.md
@@ -77,7 +77,6 @@ https://<IP-del-servidor>:9443
|
|||||||
|
|
||||||
## Próximos Pasos
|
## Próximos Pasos
|
||||||
|
|
||||||
- 📖 [Instalación Avanzada](Instalacion) - Configuración de TLS, variables de entorno y opciones avanzadas
|
|
||||||
- 💾 [Backup y Restauración](Backup) - Cómo respaldar y restaurar datos de Portainer
|
- 💾 [Backup y Restauración](Backup) - Cómo respaldar y restaurar datos de Portainer
|
||||||
- 🌐 [Integración con Traefik](Traefik) - Configurar proxy inverso con TLS automático
|
- 🌐 [Integración con Traefik](Traefik) - Configurar proxy inverso con TLS automático
|
||||||
- 🔌 [Edge Agents](Edge-Agents) - Gestionar entornos remotos con agentes Edge
|
- 🔌 [Edge Agents](Edge-Agents) - Gestionar entornos remotos con agentes Edge
|
||||||
|
|||||||
263
Instalacion.md
263
Instalacion.md
@@ -1,263 +0,0 @@
|
|||||||
# Instalación Avanzada
|
|
||||||
|
|
||||||
Esta página cubre opciones avanzadas de instalación y configuración para Portainer CE.
|
|
||||||
|
|
||||||
## Configuración con Variables de Entorno
|
|
||||||
|
|
||||||
Puedes usar un archivo `.env` para gestionar variables de configuración. Crea el archivo en la raíz del proyecto:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# .env
|
|
||||||
PORTAINER_HTTPS_PORT=9443
|
|
||||||
PORTAINER_EDGE_PORT=8000
|
|
||||||
PORTAINER_DATA_VOLUME=portainer_data
|
|
||||||
PORTAINER_NETWORK=portainer_network
|
|
||||||
```
|
|
||||||
|
|
||||||
Luego referencia estas variables en `docker-compose.yaml`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
portainer:
|
|
||||||
container_name: portainer
|
|
||||||
image: portainer/portainer-ce:lts
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
- ${PORTAINER_DATA_VOLUME:-portainer_data}:/data
|
|
||||||
ports:
|
|
||||||
- "${PORTAINER_HTTPS_PORT:-9443}:9443"
|
|
||||||
# - "${PORTAINER_EDGE_PORT:-8000}:8000" # Descomenta para Edge Agents
|
|
||||||
networks:
|
|
||||||
- ${PORTAINER_NETWORK:-portainer_network}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuración de Certificados SSL/TLS
|
|
||||||
|
|
||||||
### Opción 1: Certificado Autofirmado (Por Defecto)
|
|
||||||
|
|
||||||
Portainer genera automáticamente un certificado autofirmado al iniciar. No requiere configuración adicional, pero los navegadores mostrarán advertencias de seguridad.
|
|
||||||
|
|
||||||
### Opción 2: Certificados Propios
|
|
||||||
|
|
||||||
Para usar tus propios certificados SSL:
|
|
||||||
|
|
||||||
1. **Prepara tus certificados**:
|
|
||||||
- `cert.pem` - Certificado público
|
|
||||||
- `key.pem` - Clave privada
|
|
||||||
|
|
||||||
2. **Crea una carpeta para certificados**:
|
|
||||||
```bash
|
|
||||||
mkdir -p ./certs
|
|
||||||
cp /ruta/a/tu/cert.pem ./certs/
|
|
||||||
cp /ruta/a/tu/key.pem ./certs/
|
|
||||||
chmod 600 ./certs/*.pem
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Modifica docker-compose.yaml**:
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
portainer:
|
|
||||||
# ... configuración existente ...
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
- portainer_data:/data
|
|
||||||
- ./certs:/certs:ro
|
|
||||||
command: --sslcert /certs/cert.pem --sslkey /certs/key.pem
|
|
||||||
```
|
|
||||||
|
|
||||||
4. **Reinicia Portainer**:
|
|
||||||
```bash
|
|
||||||
docker compose down
|
|
||||||
docker compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
### Opción 3: Proxy Inverso con Let's Encrypt
|
|
||||||
|
|
||||||
La forma más profesional es usar un proxy inverso como Traefik o Nginx con certificados Let's Encrypt. Ver [Integración con Traefik](Traefik).
|
|
||||||
|
|
||||||
## Habilitar Edge Agents
|
|
||||||
|
|
||||||
Los Edge Agents permiten gestionar entornos Docker remotos que no tienen conectividad directa con Portainer Server.
|
|
||||||
|
|
||||||
### 1. Exponer Puerto 8000
|
|
||||||
|
|
||||||
Edita `docker-compose.yaml` y descomenta la línea del puerto 8000:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
ports:
|
|
||||||
- "9443:9443"
|
|
||||||
- "8000:8000" # ← Descomentar esta línea
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Configurar Firewall
|
|
||||||
|
|
||||||
Asegúrate de que el puerto 8000 esté accesible desde tus agentes remotos:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Ejemplo con UFW (Ubuntu)
|
|
||||||
sudo ufw allow 8000/tcp
|
|
||||||
|
|
||||||
# Ejemplo con firewall-cmd (RHEL/CentOS)
|
|
||||||
sudo firewall-cmd --permanent --add-port=8000/tcp
|
|
||||||
sudo firewall-cmd --reload
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Desplegar Edge Agent
|
|
||||||
|
|
||||||
Desde la interfaz de Portainer:
|
|
||||||
1. Ve a **Environments** → **Add environment**
|
|
||||||
2. Selecciona **Docker Standalone**
|
|
||||||
3. Elige **Edge Agent**
|
|
||||||
4. Copia el comando de instalación y ejecútalo en el host remoto
|
|
||||||
|
|
||||||
📖 Más información: [Documentación oficial de Edge Agents](https://docs.portainer.io/admin/environments/add/docker/edge)
|
|
||||||
|
|
||||||
## Configuración de SELinux
|
|
||||||
|
|
||||||
Si usas SELinux en Linux, necesitas ejecutar Portainer con el flag `--privileged`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
portainer:
|
|
||||||
# ... configuración existente ...
|
|
||||||
privileged: true
|
|
||||||
```
|
|
||||||
|
|
||||||
O configurar políticas SELinux específicas (recomendado para producción):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo semanage fcontext -a -t svirt_sandbox_file_t "/var/lib/docker/volumes/portainer_data(/.*)?"
|
|
||||||
sudo restorecon -R /var/lib/docker/volumes/portainer_data
|
|
||||||
```
|
|
||||||
|
|
||||||
## Docker Rootless
|
|
||||||
|
|
||||||
Portainer puede ejecutarse con Docker rootless, pero con algunas limitaciones:
|
|
||||||
|
|
||||||
1. **Montar socket rootless**:
|
|
||||||
```yaml
|
|
||||||
volumes:
|
|
||||||
- $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Limitaciones conocidas**:
|
|
||||||
- No se puede gestionar el host (stats, eventos del sistema)
|
|
||||||
- Algunas funciones de networking pueden no funcionar
|
|
||||||
- Host management features deshabilitadas
|
|
||||||
|
|
||||||
📖 Más información: [Docker Rootless](https://docs.docker.com/engine/security/rootless/)
|
|
||||||
|
|
||||||
## Despliegue con Docker Run
|
|
||||||
|
|
||||||
Si prefieres no usar Docker Compose:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Crear volumen
|
|
||||||
docker volume create portainer_data
|
|
||||||
|
|
||||||
# Ejecutar Portainer
|
|
||||||
docker run -d \
|
|
||||||
-p 9443:9443 \
|
|
||||||
--name portainer \
|
|
||||||
--restart=always \
|
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
||||||
-v portainer_data:/data \
|
|
||||||
portainer/portainer-ce:lts
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuración de Red Avanzada
|
|
||||||
|
|
||||||
### Usar Red Externa
|
|
||||||
|
|
||||||
Si ya tienes una red Docker existente:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
networks:
|
|
||||||
portainer_network:
|
|
||||||
external: true
|
|
||||||
name: mi_red_existente
|
|
||||||
```
|
|
||||||
|
|
||||||
### IPv6
|
|
||||||
|
|
||||||
Para habilitar IPv6:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
networks:
|
|
||||||
portainer_network:
|
|
||||||
enable_ipv6: true
|
|
||||||
ipam:
|
|
||||||
config:
|
|
||||||
- subnet: "fd00::/64"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Limitar Recursos
|
|
||||||
|
|
||||||
Para limitar CPU y memoria de Portainer:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
portainer:
|
|
||||||
# ... configuración existente ...
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
cpus: '1.0'
|
|
||||||
memory: 512M
|
|
||||||
reservations:
|
|
||||||
cpus: '0.5'
|
|
||||||
memory: 256M
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuración de Logging
|
|
||||||
|
|
||||||
Personalizar el driver de logs:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
portainer:
|
|
||||||
# ... configuración existente ...
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "10m"
|
|
||||||
max-file: "3"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Troubleshooting Avanzado
|
|
||||||
|
|
||||||
### Logs Detallados
|
|
||||||
|
|
||||||
Habilitar modo debug:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
portainer:
|
|
||||||
# ... configuración existente ...
|
|
||||||
command: --log-level=DEBUG
|
|
||||||
```
|
|
||||||
|
|
||||||
### Verificar Conectividad al Socket Docker
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Desde dentro del contenedor
|
|
||||||
docker exec -it portainer ls -la /var/run/docker.sock
|
|
||||||
|
|
||||||
# Verificar permisos
|
|
||||||
docker exec -it portainer stat -c '%a %U:%G' /var/run/docker.sock
|
|
||||||
```
|
|
||||||
|
|
||||||
### Reset de Admin Password
|
|
||||||
|
|
||||||
Si olvidaste la contraseña del admin:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker stop portainer
|
|
||||||
docker run --rm -v portainer_data:/data portainer/helper-reset-password
|
|
||||||
docker start portainer
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Próximos pasos**: [Backup y Restauración](Backup) | [Integración con Traefik](Traefik)
|
|
||||||
Reference in New Issue
Block a user