Förra veckan resonerade jag kring ”server” och vad man kan göra för att underlätta sin ”GEO” miljö. Denna veckan så tänkte jag ta något exempel till och samtidigt kombinera med inlägg från ännu lite tidigare.
Därför tänkte jag börja med ”Docker” den här veckan.
Vad är då Docker. Om man läser på deras hemsida så är det ”Världens ledande containerplattform”. I praktiken så är det en metod att distribuera mjukvara och samtidigt garantera att alla beroenden för att köra mjukvaran är uppfyllda. Kan du installera en Docker container, så kan du köra mjukvaran!
En Docker container ligger någonstans mellan en ren installation och en virtuell dator. Det följer inte med några operativsystemfiler, men alla inställningar, exekverbara beroenden, programbibliotek, med mera finns med.
Har man exempelvis ett program som kräver Python 3.5 för att kunna köras så kommer detta att installeras med i containern. Jag tror dessutom att detta görs oavsett om man redan har Python 3.5 installerat på datorn(?).
Docker paket är ganska stora, men framför allt väldigt användbara i en utvecklingsmiljö där man snabbt ändrar på väldigt mycket och behöver dela kod mellan flera utvecklare som jobbar i olika utvecklingsmiljöer. Det går att köra Docker i en produktionsmiljö utan problem, men då kan det finnas motiv att se vad man kan vinna på en ”riktig” installation när det gäller exempelvis prestanda.
För att installera Docker på Linux kör:
sudo apt install docker.io
Skall jag ge ett exempel på kraften bakom Docker så kommer här installation av QGIS Server (som jag dock inte provat själv):
sudo docker pull kartoza/qgis-server:LTR
docker run --name "qgis-server" -p 9999:80 -d -t kartoza/qgis-server
Under förutsättning att docker är installerat så kommer ovanstående att hämta och installera QGIS Server i en Docker container! Det är faktiskt inte mer som behövs!! Ja, som vanligt så behöver man eventuellt göra en del konfigurering och anpassning till den lokala miljön, men det är allt.
Det går att köra massor med program och servertjänster på detta sätt. Det finns även experiment där QGIS Desktop installeras och körs i en Docker container. Vill man prova något lite ”säkrare” så har Docker själva några containrar som de publicerar.
Man kan exempelvis installera MySQL i en container, tillsammans med WordPress i en annan. Då har man en komplett bloggmiljö som kan köras isolerat i containrar på ett enkelt sätt.
Nu är kanske WordPress inte det absolut svåraste man kan ge sig i kast med att installera på en linuxserver utan Docker. Men i morgon så tar jag ett exempel som kan vara lite knivigt att få igång, men som med Docker är hur enkelt som helst.