Vad är Docker?
En labb jag ska göra använder sig av Docker, men jag undrar vad det egentligen är? På
https://en.wikipedia.org/wiki/Docker_(software)
Står det:
Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.[5]
Men det betyder ingenting för mig...
Linux (och andra Unix-varianter) är väldigt bra på att isolera processer, så att en krasch i ett program inte förstör ett annat program som exekverar samtidigt i samma maskin.
Om jag fattar någorlunda rätt vid en snabb titt på Wikipedia-sidan, så använder Docker operativsystemets mekanismer för isolering i stället för att hitta på någon egen mekanism. Man skulle ju kunna tro att man bara flyttar problemet då, eftersom olika Dockers-containers ändå måste kommunicera på något sätt. Då blir det ju känsligt vilket interface man definierar.
Men på något sätt verkar man ha löst det. Jag tänker inte grubbla mer på hur det har gått till.
Jag använde för ganska länge sedan, men att säga att man isolerar processen låter som en bra förklaring. Exempelvis kan man i en docker-container installera all mjukvara som behövs för att köra koden/programmen, och eftersom koden sedan körs inuti containern behöver inte hela enheten ha mjukvaran installerad. Det blir då lite som en virtuell maskin
Jag tänkte nämna att jag tidigare också använt ett containerprogram (singularity) men googlade lite snabbt för att inte göra bort mig, den beskrivs på exakt samma sätt:
Singularity is a free and open-source computer program that performs operating-system-level virtualization also known as containerization.
Jag minns att jag använde det för att undvika att behöva installera nåt program i min virtual machine (jag hade problem med att installera). Jag brydde mig inte så mycket om vad det betydde då.