"Hello World" für Docker
Um das HomeLab mit Traefik und Portainer zu testen bietet sich ein Demo Image von nginx an. Die Veröffentlichung über den Reverse Proxy Traefik wird mit Hilfe von Labels in der "docker-compose.yml" bzw. der Stack Definition in Portainer gesteuert.
In meinem HomeLab habe ich die externe Verbindung grundsätzlich unterbunden, so dass "traefik.enable=true" erforderlich ist. Der Port 80 muss nicht über die Stack Definition "Ports" geöffnet werden, sondern über den Loadbalancer von Traefik. Nach außen sorgt Traefik für das Zertifikat von Let's Encrypt und die Verbindung über HTTPS. Sowohl Traefik, als auch diese Anwendung, müssen sich im gleichen, selbst definiertem Docker Netzwerk "proxy" befinden, damit Traefik die Anwendung erreichen kann.
version: "3.9"
services:
hello:
image: nginxdemos/hello:latest
container_name: hello
restart: unless-stopped
networks:
- proxy
volumes:
- "/etc/localtime:/etc/localtime:ro"
labels:
- "traefik.enable=true"
- "traefik.http.routers.hello.rule=Host(`hello.example.com`)"
- "traefik.http.routers.hello.entrypoints=websecure"
- "traefik.http.services.hello.loadbalancer.server.port=80"
- "traefik.http.routers.hello.service=hello"
- "traefik.http.routers.hello.tls.certresolver=leresolver"
networks:
proxy:
external: true
Die Website präsentiert dann die internen Informationen aus dem Docker Netzwerk.
