Rancher mit Docker-Compose installieren
Was ist Rancher
Rancher ist eine Open Source Software welche die Verwaltung und Bereitstellung von Docker Container vereinfacht. Über eine übersichtliche, webbasierte Benutzeroberfläche können Hosts, Container, Speicher, Zertifikate und Registries verwaltet und skaliert werden.
Installation von Rancher
Für die Installation von Rancher nutze ich Docker-Compose, was mir eine einfach Installation und gute Wartbarkeit ermöglicht.
Reverse-Proxy und Let’s Encrypt
Sicherheit ist bei einem webbasiertem System wie Rancher ein ganz wichtiges Thema und die Kommunikation über SSL absolut Pflicht. Um dies zu ermöglichen setze ich einen Reverse-Proxy vor dem Rancher-Container ein welcher die gesamte Kommunikation kanalisiert und ein weiterer Container welcher die SSL-Zertifikate von Let's Encrypt managed.
docker-compose.yaml
Wird Docker-Compose eingesetzt, kann die Konfiguration und das Verhalten der nötigen Container in einem einzigen Dokument zusammengefasst werden. Das Dokument heisst docker-compose.yaml und sieht bei mir wie folgt aus:
version: '2'
services:
nginx:
restart: always
image: jwilder/nginx-proxy
container_name: nginx
ports:
- 80:80
- 443:443
volumes:
- ./volumes/proxy/conf.d:/etc/nginx/conf.d
- ./volumes/proxy/vhost.d:/etc/nginx/vhost.d
- ./volumes/proxy/html:/usr/share/nginx/html
- ./volumes/proxy/certs:/etc/nginx/certs:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
letsencrypt-nginx-proxy-companion:
restart: always
image: alastaircoote/docker-letsencrypt-nginx-proxy-companion
container_name: letsencrypt-companion
depends_on: [nginx]
volumes_from:
- nginx
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./volumes/proxy/certs:/etc/nginx/certs:rw
rancher-server:
restart: always
image: rancher/server
container_name: rancher-server
environment:
LETSENCRYPT_EMAIL: letsencrypt@mydomain.tld
LETSENCRYPT_HOST: rancher.mydomain.tld
VIRTUAL_HOST: rancher.mydomain.tld
VIRTUAL_PORT: '8080'
labels:
io.rancher.container.pull_image: always
io.rancher.scheduler.affinity:host_label_soft: rancher.mydomain.tld
volumes:
- ./volumes/rancher-server/mysql:/var/lib/mysql:rw
Installation / Starten von Rancher
Ist Docker-Compose installiert kann über die Kommandozeile folgender Befehl eingegeben werden um alle Container zu installieren und zu starten:
docker-compose up -d