1. Home
  2. Cloud
  3. Slik installerer du Portainer med automatisk TLS via Caddy i Oderland Cloud

Slik installerer du Portainer med automatisk TLS via Caddy i Oderland Cloud

Denne veiledningen er basert på et Debian 12-bilde, med smaken a1-c2-m4 (2 kjerner, 4 GB ram) og en 50 GB oppstartsdisk.

Vi har valgt Caddy som proxy med automatisk TLS-støtte, men det finnes andre alternativer som f.eks trafikk og nginx.

Hva er Portainer og hvorfor vil jeg installere det?

Portainer er et nettgrensesnitt for å administrere containere. Det kan være praktisk å få oversikt når man har flere containere og å raskt kunne se logger, utføre kommandoer eller å lagre egne maler for å kunne lage flere av samme type.

Er Portainer gratis?

Portainer er tilgjengelig som en gratis fellesskapsutgave med god funksjonalitet. Hvis du trenger flere funksjoner eller ønsker å sponse prosjektet, kan du bytte til den betalte versjonen.
Se Portainer sin nettside for mer informasjon.

Hvor kan jeg finne mer dokumentasjon om Portainer?

https://docs.portainer.io/

Opptreden

Vi lager en server i Oderland Cloud med Docker og peker et vertsnavn (f.eks. domene eller underdomene) til serverens nye ip-adresse.

Deretter går vi inn på serveren og bytter til root som bruker. Så lager vi et docker-nettverk som vi kaller caddie. Den brukes for containerne du ønsker å få automatisk TLS (https://). I dette tilfellet bruker vi det direkte for Portainer sitt webgrensesnitt.

Vi lager en mappestruktur og en docker-compose.yml-fil som forteller hvilke tjenester som skal kjøres og hvordan de skal konfigureres, og spesifiserer samme vertsnavn som vi pekte på serveren.

Deretter starter vi opp vår nye docker compose stack og surfer til Portainer sin påloggingsside og oppretter en bruker og kort tid etterpå kan vi se, administrere og opprette nye Containere, Stacks eller koble til flere Docker servere for administrasjon.

Forberedelser

Opprett først en server i Oderland Cloud med Docker, sjekk en av veiledningene nedenfor hvis du trenger hjelp.

https://www.oderland.se/support/artikel/sa-installerar-du-en-ny-server-med-docker-engine-i-oderland-cloud/

https://www.oderland.se/support/artikel/sa-installerar-du-docker-engine-i-oderland-cloud/

Punktvertsnavn (domene eller underdomene)

Pek et passende vertsnavn til serverens ipv4-adresse.

Bytt til root-brukeren

SSH inn på serveren.

Vi kjører alle kommandoer som root. Så bytt til root som bruker hvis du ikke allerede er det.

sudo su -

Lag Docker-nettverk og en docker-skrivefil

Deretter oppretter vi et docker-nettverk som vi bruker for containerne vi ønsker å proxy via Caddy og håndterer automatisk Let’s Encrypt / Zero SSL for å få sikker tilkobling.

docker-nettverk lage caddie
mkdir -p /root/compose/portainer
katt /root/compose/portainer/docker-compose.yml
versjon: "3.7"

tjenester:
 caddies:
  bilde: lucaslorentz/caddy-docker-proxy:ci-alpine
 porter:
  - 80:80
  - 443:443
  miljø:
  - CADDY_INGRESS_NETWORKS=caddie
 nettverk:
 - caddie
  volumer:
  - /var/run/docker.sock:/var/run/docker.sock
  - caddy_data:/data
  omstart: med mindre den er stoppet
  bærere:
  bilde: portainer/portainer-ce:nyeste
  kommando: -H unix:///var/run/docker.sock
  omstart: med mindre den er stoppet
  porter:
  - 8000:8000
  volumer:
  - /var/run/docker.sock:/var/run/docker.sock
  - portainer_data:/data
 nettverk:
  - caddie
  etiketter:
  caddie: HOSTNAME
  caddy.reverse_proxy: "{{upstreams 9000}}"
volumer:
  portainer_data: {}
  sertifikater: {}
  acme: {}
  vhost: {}
  html: {}
  caddy_data: {}

nettverk:
  caddies:
  ekstern: sant
EOF

Skriv inn vertsnavnet ditt

Hvis du har pekt på et vertsnavn som du vil bruke for serveren eller for Portainer, kan du nå redigere kodebiten ovenfor og endre VERTSNAVN til ditt valgte vertsnavn. Du kan også gjøre det etterpå med sed-kommandoen som vi viser nedenfor.

For demoformål opprettet vi containers-srv01.demo.oderland.cloud slik at vi deretter kan gå til https://containers-srv01.demo.oderland.cloud for å nå Portainer. Eksemplet ser da ut som følgende med sed-kommandoen.

sed -i 's/HOSTNAME/containers-srv01.demo.oderland.cloud/g' /root/compose/portainer/docker-compose.yml

Start Portainer og Caddy

Start deretter vår nye docker compose stack.

cd /root/compose/portainer/
docker komponere opp -d

Da vil alle bilder/lag lastes ned og du skal få en utgang som ligner på:

root@containers-srv01:~/compose/portainer# docker compose up -d
[+] Kjører 16/16
  ✔ portner 11 lag [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Trekk 5.5s  
  ✔ 7bd7f95ed7eb Trekk komplett 0,6s  
  ✔ 9d019f0c1f3a Trekk komplett 0,9 s  
  ✔ 5171176db7f2 Trekk komplett 1.0s  
  ✔ 52e9438966a5 Trekk komplett 1,5s  
  ✔ 43d4775415ac Trekk komplett 1,6s  
  ✔ c1cad9f5200f Trekk komplett 1,6s  
  ✔ 4de43b91ce75 Trekk komplett 1,9s  
  ✔ d7c8d69c556b Trekk komplett 2.3s  
  ✔ 173ea6e5087e Trekk komplett 2.1s  
  ✔ 90767cd90d02 Trekk komplett 2,3s  
  ✔ 4f4fb700ef54 Trekk komplett 2,5s  
  ✔ caddie 3 lag [⣿⣿⣿] 0B/0B Trekk 3,8s  
  ✔ c158987b0551 Trekk komplett 0,5s  
  ✔ fe528bf0229e Trekk komplett 1.0s  
  ✔ 8e4f673e7c70 Trekk komplett 1,3s  
[+] Kjører 4/4
  ✔ Volum "portainer_portainer_data" Opprettet 0.0s  
  ✔ Volum "portainer_caddy_data" Opprettet 0.0s  
  ✔ Container porttainer-caddy-1 Startet 0.1s  
  ✔ Container portainer-portainer-1 Startet  

Opprett bruker

Gå nå til vertsnavnet du valgte, men sørg for at du har pekt vertsnavnet til ip-adressen din før.

I vår demo går vi mot https://containers-srv01.demo.oderland.cloud og blir deretter møtt av bildet nedenfor.


Hvis alt gikk bra, har du nå en Portainer for å installere og administrere containerne dine på serveren og beskyttet med automatisk https via Caddy-nettserveren.

Du må da starte porttainer på nytt før du kan logge på.

cd /root/compose/portainer/
docker compose restart porttainer

vanlige spørsmål

Endre vertsnavn

Hvis du redigerer filen docker-compose.yml etterpå og endrer til et annet vertsnavn, må du starte stabelen på nytt og tvinge frem nye konfigurasjoner via:

cd /root/compose/portainer/
docker compose up --force-recreate -d

Hvis noe går galt, kan du se i loggene for hele stabelen med:

docker komponere logger

Automatisk TLS for flere containere på serveren?

Vi har forberedt oss på det ved å opprette Caddy-nettverket. Du må legge til caddie-nettverket og via etiketter kontrollere hvilket domene eller sti etc. som skal proxyes, samt hvilken port den skal gå til.

Du kan nå via f.eks. docker compose legg til følgende i en tjeneste for å få TLS.

 nettverk:
  - caddie
  etiketter:
  caddie: new-container.app.mitt.domene
  caddy.reverse_proxy: "{{oppstrøms 80}}"

nettverk:
  caddies:
  ekstern: sant

Pass imidlertid på å ikke fjerne andre nettverk som kan være inkludert, men bare legge til caddie-nettverket og kun til tjenesten som må frontes med https.

Hvordan kontrollere Caddy Proxy

Les mer om Caddy proxy og hvordan du kan styre via f.eks. stier eller hvordan du legger til flere domener til samme tjeneste.

Was this article helpful?

Related Articles