"Hello World" für Docker

"Hello World" für Docker
Photo by NASA / Unsplash

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.