Was ist Portainer?
Potainer ist eine leistungsstarke Open-Source-Container-Management-Plattform, mit der Sie Docker-Umgebungen einfach erstellen, verwalten und warten können. Unten ist die Portainer-Architektur.
Was ist Traefik?
Traefik ist ein einfacher, dynamischer, automatischer und schneller Open-Source-Reverse-Proxy und Load Balancer für HTTP- und TCP-basierte Anwendungen.
Das Arbeitsprinzip von Traefik und Containern ist unten.
Docker muss installiert werden, bevor mit der Portainer-Installation begonnen wird.
- sudo apt-get remove docker docker-engine docker.io containerd runc
- sudo apt-get update
- sudo apt-get install \
- sudo mkdir -m 0755 -p /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- echo \
Aktualisieren Sie apt-Pakete und installieren Sie die neuesten Versionen für Docker Engine, Containerd und Docker Compose;
- sudo apt-get update
- sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- sudo docker run hello-world
Traefik- und Portainer-Installation
Dateisystem mit einer ähnlichen Struktur unten erstellen;
- Home-Verzeichnis, in dem alle Docker-bezogenen Dinge gespeichert werden:
/home/ubuntu/docker
- Core mit Docker-Compose für Traefik und Portainer Verzeichnis:
- Traefik-Konfiguration files
- Diese Datei dient zum Speichern aller Zertifikate used
- Konfiguration für Traefik file
- Portainer-Konfiguration files
Führen Sie die folgenden Befehle im Terminal nacheinander aus, um die Dateien zu erstellen;
- mkdir -p /home/ubuntu/docker/core/traefik-data
- mkdir -p /home/ubuntu/docker/core/portainer-data
- touch /home/ubuntu/docker/core/traefik-data/acme.json
- chmod 600 Öffnen /home/ubuntu/docker/core/traefik-data/acme.json
- touch /home/ubuntu/docker/core/traefik-data/traefik.yml
traefik.yml und bearbeiten Sie es wie folgt. Ersetzen Sie email@example.com durch Ihre E-Mail-Adresse https:
Adresse: „:443“
providers:
docker:
Endpunkt: "unix:///var/run/docker.sock"
ExponiertByDefault: false
certificatesResolvers:
http:
acme:
E-Mail: email@example.com
Speicher: acme.json
httpChallenge:
enterPoint: http
Erstellen Sie ein sicheres Passwort für den Traefik-Zugriff. Installieren Sie dazu zunächst das htpasswd-Paket und führen Sie nacheinander die folgenden Befehle aus;
- sudo apt install apache2-utils
- echo $(htpasswd -nb
) | sed -e s/\\$/\\$\\$/g
Erstellen Sie ein Docker-Proxy-Netzwerk;
- Docker-Netzwerk erstellen Sie Traefik-Proxy
Bearbeiten Sie die Datei docker-compose.yml als folgt;
version: '3'
services:
traefik:
image: traefik:v2.2
container_name: traefik
Neustart: sofern nicht gestoppt
security_opt:
- no-new-privileges:true
Netzwerke:
- traefik-proxy
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik-data/traefik.yml:/traefik.yml:ro
- ./traefik-data/acme.json:/acme.json
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.example.com`)"
- "traefik.http.middlewares.traefik-auth.basicauth.users=username:password"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.example.com`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=http"
- "traefik.http.routers.traefik-secure.service=api@internal"
portainer:
Bild: portainer/portainer:latest
Containername: portainer
Neustart: sofern nicht gestoppt
security_opt:
- no-new-privileges:true
Netzwerke:
- traefik-proxy
Volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./portainer-data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.entrypoints=http"
- "traefik.http.routers.portainer.rule=Host(`portainer.example.com`)"
- "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.portainer.middlewares=portainer-https-redirect"
- "traefik.http.routers.portainer-secure.entrypoints=https"
- "traefik.http.routers.portainer-secure.rule=Host(`portainer.example.com`)"
- "traefik.http.routers.portainer-secure.tls=true"
- "traefik.http.routers.portainer-secure.tls.certresolver=http"
- "traefik.http.routers.portainer-secure.service=portainer"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- "traefik.docker.network=traefik-proxy"
networks:
traefik-proxy:
extern: true
Führen Sie abschließend den folgenden Befehl aus, um die Container aufzustellen;
- docker-compose up -d
Sie können darauf zugreifen Rufen Sie die Portainer-Schnittstelle auf, indem Sie in Ihrem Browser auf https://portainer.example.com gehen. Nachdem Sie auf dem angezeigten Bildschirm einen Benutzernamen und ein Passwort erstellt haben, ist das System betriebsbereit.