Table of Contents

Docker - ghid de inițiere

Docker este o platformă pentru rularea aplicațiilor în containere izolate. În loc să instalați software direct pe server, îl împachetați cu toate dependențele într-un container care rulează la fel peste tot. Serverul include Docker Engine, Docker Compose și Portainer – o interfață web pentru administrarea containerelor fără linie de comandă.


Pasul 1 – Verificați funcționarea Portainer

Adresa IP și parola root a serverului sunt afișate în secțiunea Server Information din fila Overview a serverului în portalul clientului. Portainer pornește automat la prima pornire. Deschideți browserul și accesați:

https://your.server.ip:9443

Browserul va afișa un avertisment de securitate despre certificatul autosemnat – este normal, continuați spre site. Setați o parolă pentru contul admin (minimum 12 caractere). După aceea veți vedea panoul Portainer, unde puteți administra containere, implementa stack-uri și monitoriza mediul Docker.

Dacă ați plasat serverul în spatele unui router VyOS într-o rețea privată, puteți configura redirecționarea porturilor (portul 22 pentru SSH, portul 9443 pentru Portainer, plus porturile expuse de containere) sau vă puteți conecta prin VPN și accesa serverul pe IP-ul privat.

Timeout Portainer

Din motive de securitate, Portainer vă oferă 5 minute pentru a seta parola după pornirea containerului. Dacă vedeți „Your Portainer instance timed out”, conectați-vă prin SSH și reporniți containerul:

ssh root@your.server.ip
docker restart portainer

Apoi deschideți din nou https://your.server.ip:9443 și creați parola.


Pasul 2 – Conectarea prin SSH

Pentru administrarea Docker din linia de comandă, conectați-vă la server:

ssh root@your.server.ip

Verificați că Docker rulează:

docker --version
docker compose version
docker run hello-world

Dacă vedeți „Hello from Docker!” – totul funcționează.


Pasul 3 – Rularea containerelor

Porniți un container din orice imagine de pe Docker Hub:

# Run an Nginx web server on port 80
docker run -d --name webserver -p 80:80 nginx

# View running containers
docker ps

# Stop and remove the container
docker stop webserver
docker rm webserver

Pasul 4 – Docker Compose

Compose vă permite să definiți aplicații cu mai multe containere într-un fișier YAML. Exemplu – Nginx plus MySQL:

mkdir ~/myapp && cd ~/myapp

cat > docker-compose.yml <<'EOF'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - db

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: changeme
      MYSQL_DATABASE: myapp
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
EOF

docker compose up -d

Comenzi Compose utile:

# View logs
docker compose logs -f

# Stop services
docker compose down

# Stop and remove volumes (deletes data!)
docker compose down -v

După instalare

Spațiu pe disc

Imaginile Docker pot ocupa rapid spațiul pe disc. Urmăriți-l:

# Check overall disk usage
df -h /

# Check Docker-specific disk usage
docker system df

# Clean up unused images, containers and networks
docker system prune -a

Actualizări

Pentru a actualiza Docker, Portainer și pachetele sistemului:

# Update system packages and Docker
apt update && apt upgrade -y

# Update Portainer to the latest version
docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:latest
docker run -d --name portainer --restart=always \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Firewall

SSH (portul 22) și Portainer (portul 9443) sunt deschise implicit. Când publicați porturi ale containerelor (de exemplu -p 80:80), acestea devin accesibile de pe internet.

Verificați ce porturi expun containerele:

docker ps --format "table {{.Names}}\t{{.Ports}}"

Fail2Ban – protecție împotriva atacurilor brute-force

Serverul dumneavoastră include Fail2Ban preconfigurat pentru a proteja SSH împotriva atacurilor brute-force.

Regulă Încercări maxime Durata blocării
SSH5 autentificări eșuate10 minute

Comenzi utile:

# Check banned IPs
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

Dacă vă blocați accidental, conectați-vă prin consola VNC din panoul clientului și deblocați-vă IP-ul.

Administrarea serviciilor

Docker rulează ca serviciu systemd. Comenzi uzuale:

# Check service status
systemctl status docker

# Restart Docker
systemctl restart docker

# View Docker logs
journalctl -u docker -f

Datele de acces la server

Parola de administrator Portainer este cea setată la prima autentificare pe https://your.server.ip:9443. Docker nu are date de acces separate – accesul este controlat de utilizatorul root de pe server.


Software inclus

Componentă Versiune
Ubuntu24.04 LTS
Docker CE29.3.0
Docker Compose5.1.0
Docker Buildx0.31.1
containerd2.2.2
Portainer CE2.39.0
Fail2Ban1.0.2

Depanare

Problemă Soluție
Portainer afișează „timed out” Rulați docker restart portainer prin SSH, apoi deschideți din nou https://IP:9443
Nu se poate conecta la daemonul Docker Este posibil ca Docker să nu fi pornit încă. Rulați systemctl start docker
Containerul nu are acces la internet Reporniți rețeaua Docker: systemctl restart docker
Portul este deja folosit Verificați ce îl folosește: ss -tlnp | grep :80
No space left on device Curățare: docker system prune -a și verificați cu df -h /
Ați uitat parola de administrator Portainer Resetați datele Portainer: docker stop portainer && docker rm portainer && docker volume rm portainer_data, apoi recreați containerul (vedeți secțiunea Actualizări)
Blocat de Fail2Ban Deblocați-vă IP-ul prin consola VNC din panoul clientului
Ați uitat parola root Resetați-o prin consola VNC din panoul clientului