Background
I’m hosting several applications using Docker containers on my Ubuntu machine. I use Nginx Proxy Manager to handle domain routing for these services. Everything was working perfectly until I ran a system update.
What happened
After running system updates, all my containerized services went offline. Being inexperienced with server management, I got worried and tried to fix things before simply restarting the system. I executed these commands in sequence:
apt-get update && apt-get upgrade
cd ~/proxy-manager
docker compose up -d
sudo reboot
Current problem
Following the system restart, my containers are running but Nginx Proxy Manager won’t let me access the admin interface. When I try to log in, the page just spins for several seconds and then stops responding. All my domain redirects have also stopped functioning.
The application container is showing this database connection error:
[5/29/2025] [8:50:37 AM] [Global ] › ✖ error connect ETIMEDOUT Error: connect ETIMEDOUT
at Connection._handleTimeoutError (/app/node_modules/mysql2/lib/connection.js:205:17)
at listOnTimeout (node:internal/timers:581:17)
at process.processTimers (node:internal/timers:519:7) {
errorno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
fatal: true
The database container logs don’t show any errors though.
Docker setup
Both containers run on a shared network called webservices:
services:
proxy:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # HTTP
- '443:443' # HTTPS
- '81:81' # Management interface
environment:
DB_MYSQL_HOST: "database"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "proxyuser"
DB_MYSQL_PASSWORD: "secretpass"
DB_MYSQL_NAME: "proxydb"
volumes:
- ./app-data:/data
- ./certificates:/etc/letsencrypt
depends_on:
- database
database:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'rootpass'
MYSQL_DATABASE: 'proxydb'
MYSQL_USER: 'proxyuser'
MYSQL_PASSWORD: 'secretpass'
MARIADB_AUTO_UPGRADE: '1'
volumes:
- ./db-storage:/var/lib/mysql
networks:
default:
external: true
name: webservices
How can I get this working again?