Docker gebruiken om veilig software uit te proberen

0
138

Met Docker kunt u software verpakken als zelfvoorzienende containers die hun host& #8217;s kernel maar zien eruit en voelen aan als onafhankelijke VM's. De software binnen draait met bijna-native prestaties. Dit maakt Docker-containers een geweldige manier om nieuwe pakketten veilig uit te proberen zonder ze te installeren “bare metal” op uw automaat. Hier zijn enkele van de technieken die u kunt gebruiken.

Waarom Docker gebruiken om software te proberen?

Rechtstreeks installeren vanuit een pakketbeheerder is niet altijd wenselijk als je software voor het eerst probeert. Misschien wilt u geen onbewezen daemon of netwerkservice op uw hardware uitvoeren. Sommige de-installatieprogramma's verwijderen niet elk bestand dat aan hun pakket is gekoppeld, waardoor uw machine vol met verweesde configuraties blijft als u besluit de software niet voor de lange termijn te gebruiken.

In het ergste geval kan het pakket dat u downloadt zelfs kwaadaardig of gecompromitteerd zijn. Kiezen voor een bare metal installatie brengt uw data in gevaar. Tegen de tijd dat u zich bewust bent van een probleem, kunnen aanvallers al gevoelige informatie uit hun snode installatiescript hebben gehaald.

Docker-containers geven u een geïsoleerde sandbox waar u nieuwe pakketten kunt installeren zonder u zorgen te hoeven maken over deze zorgen. Vergeleken met het opstarten van een geheel nieuwe VM, is Docker lichter en sneller, maar biedt het een vergelijkbaar beveiligingsniveau wanneer het is geconfigureerd voor veilige uitvoering.

Pakketten die u in een container installeert, zullen het bestandssysteem van die container wijzigen, waardoor de gegevens van uw host intact blijven. Schadelijke pakketten zullen het veel moeilijker hebben om uw systeem in gevaar te brengen, omdat ze uit de container moeten breken om uw host te bereiken. Installateurs die op zoek gaan naar interessante configuratiebestanden van andere pakketten, zien een nieuw bestandssysteem in plaats van uw gebruikersgegevens.

Advertentie

Als blijkt dat een pakket niet geschikt voor u is, ’ 8220;verwijderen” het door simpelweg uw sandboxed Docker-container te verwijderen. Er zal geen spoor van achterblijven op uw systeem.

Docker-afbeeldingen vinden

Als u iets nieuws wilt proberen, kunt u het beste eerst in Docker Hub zoeken en kijken of er al een containerimage is voor het door u gekozen pakket. Afbeeldingen bieden kant-en-klare implementaties van specifieke software, vergelijkbaar met een VM ISO die vooraf is geconfigureerd met een set pakketten.

Veel populaire projecten bieden nu officiële Docker-afbeeldingen aan als onderdeel van hun releases . Deze zijn op Docker Hub duidelijk gemarkeerd met een groene “Official Image” badge.

Soms vindt u een onofficiële afbeelding die het pakket biedt waarnaar u op zoek bent maar wordt gepubliceerd door een lid van de gemeenschap. Het is de moeite waard om eerst de downloadstatistieken te controleren om te beoordelen of anderen het met succes gebruiken.

Zorg er ook voor dat de afbeelding een variant heeft voor de gewenste softwareversie. Afbeeldingen zullen verschillende versies onderscheiden met behulp van Docker-tags, zoals mongo:5 voor MongoDB 5 en mongo:4 voor MongoDB 4. Gebruik de tags-weergave van Docker Hub om de beschikbare opties te zien en wanneer ze voor het laatst zijn bijgewerkt.

Een afbeelding gebruiken

Zodra je een afbeelding hebt gevonden, start je er een container van. Raadpleeg de beschrijving van uw afbeelding op Docker Hub voor specifieke instructies voor de software die u heeft geselecteerd.

Advertentie

Over het algemeen kunnen afbeeldingen die een interactieve toepassing inpakken, worden gestart met deze volgorde:

docker run -it example-image:latest

Start afbeeldingen die achtergrondprocessen voorzien van de vlag -d in plaats daarvan:

docker run -d example-image:latest

De opdracht docker run start een container met de opgegeven afbeelding. Uw software draait nu in een geïsoleerde omgeving met een eigen bestandssysteem. U kunt meerdere onafhankelijke instanties tegelijk uitvoeren door meerdere containers vanaf de afbeelding te starten.

Wat als er geen afbeelding is?

< p>De afwezigheid van een officiële – of onofficiële – Docker-image voor het door u gekozen softwarepakket is niet het einde van uw try-with-Docker-reis. Maak in deze situatie een container van een basisimage van een besturingssysteem om uw geïsoleerde omgeving te hosten. U kunt dan de normale installatieprocedure van de software uitvoeren om het in uw container te krijgen.

Hier is een voorbeeld dat een nieuwe Ubuntu-omgeving start in Docker:

docker run – het ubuntu:20.04

De -it-vlaggen betekenen dat je in een interactieve shell wordt gedropt die in de terminal wordt uitgevoerd. Nu kunt u apt, curl, wget of andere noodzakelijke stappen gebruiken om uw doelpakket te installeren en te proberen.

apt update apt install example-package example-package –example-flags Advertisement

Als als je deze stappen in de toekomst nog een keer wilt herhalen, schrijf dan een Dockerfile waarmee je je eigen afbeelding kunt bouwen:

VANAF ubuntu:20.04 apt update apt install example-package ENTRYPOINT [“example-package”] CMD [“”]

Bouw uw imago op:

docker build -t voorbeeld-pakket: laatste .

Gebruik nu uw afbeelding om een ​​container te starten die automatisch het binaire voorbeeldpakket uitvoert dat is toegevoegd aan de Ubuntu-basisafbeelding:

docker run -it example-package:latest –example-flags

Dit werkt omdat het binaire bestand is ingesteld als de opdracht van de Docker-afbeelding in uw Dockerfile. Het wordt automatisch uitgevoerd wanneer de container start en ontvangt de vlaggen die u doorgeeft aan docker run.

Snapshots maken

Een ander voordeel van het gebruik van Docker om nieuwe software uit te proberen, is de mogelijkheid om snapshots te maken van de huidige staat van een container. Dit is handig wanneer u verschillende instellingen uitprobeert en een back-up wilt maken van een specifieke configuratie, zodat u er later gemakkelijk naar kunt terugkeren.

Gebruik de opdracht docker commit om een ​​nieuwe afbeelding van een container te maken&#8217 ;s bestandssysteem:

docker commit my-container package-snapshot:latest

U dient my-container te vervangen door de ID of naam van uw container. U kunt deze details krijgen door docker ps uit te voeren, waarin alle actieve containers worden weergegeven in de volgorde waarin ze zijn gestart. De opdracht tagt de snapshot-afbeelding als package-snapshot:latest.

Advertentie

Je kunt nu alle benodigde wijzigingen aanbrengen in je bestaande container zonder dat je je zorgen hoeft te maken dat je huidige status wordt verbroken. Als je wilt terugdraaien, gebruik dan docker run om een ​​andere container te starten vanaf de package-snapshot:latest image.

Opschonen

Als je klaar bent met experimenteren, maakt Docker het gemakkelijk om de installatie ongedaan te maken. uw software zonder een spoor achter te laten. Verwijder eerst je containers:

docker rm my-container

Wis vervolgens de afbeeldingen die je hebt gedownload:

docker rmi example-image:latest

Je bent nu terug bij een schone staat. Aangezien alles met betrekking tot de software alleen in uw container bestond, blijft het bestandssysteem van uw host ongewijzigd.

Persistente gegevens

Een uitdaging die u kunt tegenkomen, is wanneer u uw beproevingen wilt onderbreken en ze later wilt hervatten. Docker-containers resetten hun status wanneer ze worden gestopt, zodat alle wijzigingen in het bestandssysteem die u hebt aangebracht, zoals het toevoegen van configuratiebestanden, verloren gaan.

U kunt dit oplossen door volumes in de container te mounten zodat belangrijke bestanden op uw host blijven staan. Gebruik hiervoor de vlag -v met docker run.

docker run -it -v config-volume:/etc/example-package/conf.d example-package:latest

Volumes overleven individuele containers, zodat u uw bestanden in een nieuwe container kunt herstellen door dezelfde -v-vlaggen op te geven. Verwijder volumes met de opdracht docker volume rm.

Conclusie

Docker is een snelle en gemakkelijke manier om veilig software uit te proberen zonder uw hostcomputer te vervuilen omgeving. Hiermee kunt u nieuwe pakketten sorteren voordat u ze introduceert bij gevoelige systemen en bare-metal hardware.

Advertentie

Het gebruik van Docker biedt de mogelijkheid om software te scannen voordat u deze uitvoert. De ingebouwde Docker Scan-component identificeert kwetsbaarheden in de pakketten binnen een afbeelding, waardoor u een overzicht krijgt van de beveiligingsimplicaties. Gebruik docker scan example-package:latest om gedownloade afbeeldingen te scannen.

U kunt ervoor kiezen om uw Dockerized-software-installatie te blijven gebruiken na uw eerste experimenten. Als alternatief kunt u wat u hebt geleerd gebruiken om een ​​functionerende bare metal-installatie op te zetten met meer vertrouwen dat het pakket doet wat het belooft.