Docker permet d\'isoler vos applications dans des conteneurs légers. Portainer ajoute une interface web pour gérer tout ça sans ligne de commande. Voici l\'installation propre et sécurisée sur Ubuntu 24.04 LTS.
Prérequis
- Un VPS Ubuntu 24.04 minimum 2 vCPU / 2 Go RAM
- Accès SSH avec utilisateur sudo
- Nom de domaine (pour Portainer en HTTPS, recommandé)
1. Installer Docker depuis le dépôt officiel
Le dépôt Docker officiel est plus à jour que celui d\'Ubuntu :
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2. Permissions sans sudo
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
3. Configurer le démon Docker
Créez /etc/docker/daemon.json :
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" },
"default-address-pools": [{"base": "172.31.0.0/16", "size": 24}]
}
sudo systemctl restart docker
4. Installer Portainer CE
docker volume create portainer_data
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:latest
Accédez à https://votre-ip:9443 pour la première configuration (créez le compte admin).
5. Reverse proxy NGINX + SSL
Pour exposer Portainer en HTTPS propre :
server {
listen 443 ssl http2;
server_name portainer.votre-domaine.fr;
ssl_certificate /etc/letsencrypt/live/.../fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/.../privkey.pem;
location / {
proxy_pass https://localhost:9443;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
6. Premier stack via Portainer
Dans Portainer → Stacks → Add stack, vous pouvez coller du docker-compose.yml directement. Exemple d\'un Nextcloud :
version: '3'
services:
nextcloud:
image: nextcloud:latest
restart: always
ports:
- 8080:80
volumes:
- nextcloud_data:/var/www/html
volumes:
nextcloud_data:
Sécurité essentielle
- Fermez le port 9443 derrière votre reverse proxy ou UFW
- Fail2ban avec une jail spéciale pour Portainer
- 2FA Portainer (Edge users)
- Backups réguliers du volume
portainer_data
Maintenir Docker à jour
sudo apt update && sudo apt upgrade docker-ce docker-ce-cli containerd.io
docker pull portainer/portainer-ce:latest
docker stop portainer && docker rm portainer
# relancer la commande docker run du chapitre 4
Quelle taille VPS choisir ?
Docker n\'est gourmand qu\'à proportion des conteneurs lancés. Pour 5-10 conteneurs légers (Portainer, NGINX, Nextcloud, base de données), 4 Go RAM / 2 vCPU suffisent. Pour des stacks lourdes (GitLab, Jellyfin, Mastodon), prévoyez 8-16 Go RAM.
Nos VPS Intel KVM sont parfaits pour Docker (pas d\'overselling, NVMe, anti-DDoS).