Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Docker is een essentiële tool voor eenvoudige installatie van de apps die uw sites en services kunnen uitvoeren, en het is nog eenvoudiger te beheren met docker-compose.

Sommige projecten worden niet geleverd met docker-compose-bestanden en het is tijdrovend om er zelf een te maken. docker-autocompose kan een werkend docker-compose-bestand genereren vanuit elke draaiende Docker-container.

Sommige Docker-apps hebben geen Compose-bestanden

Docker is een open-sourceplatform voor het implementeren van applicaties in gebundelde componenten die bekend staan ​​als containers. Door Docker te gebruiken, hoeft u zich geen zorgen te maken over afhankelijkheden of interacties tussen services, aangezien deze meestal tot op zekere hoogte vooraf zijn geconfigureerd.

U kunt Docker gebruiken om apps te implementeren, waaronder gespecialiseerde servers, Linux-distributies of aangepaste afbeeldingen. Het uitvoeren van apps met Docker is relatief eenvoudig en kan ervoor zorgen dat u altijd over de nieuwste softwareversie beschikt.

instagram viewer

Als u niet bekend bent met het concept van gedockeriseerde apps, moet u onze essentiële gids lezen waarom u Docker zou moeten gebruiken in plaats van een virtuele machine.

Docker-opdrachten zijn lang en worden meestal uitgevoerd als een enkele opdracht die alle relevante variabelen bevat. Ze zijn lastig in te voeren, en hoewel je een alias aan je .bashrc-bestand kunt toevoegen, komt het er vaak op neer dat je herhaaldelijk op Ctrl+R om de exacte Docker-opdracht te vinden die u zoekt.

Docker Compose is een hulpmiddel om u te helpen bij interactie en orkestratie tussen verschillende containers. Het is zo effectief om u te helpen bij het beheren van Docker-containers, dat veel gebruikers helemaal niet leren hoe ze Docker moeten gebruiken. Waarom zou je, als je alleen maar een enkel YAML-bestand hoeft te downloaden en het op te starten met een eenvoudig commando van twee woorden?

Hoewel veel apps die door Docker kunnen worden geïmplementeerd, Compose-bestanden hebben, hebben ze dat niet allemaal, waardoor snelle, schone Docker-installaties en -implementaties moeilijk zijn. Dit komt vooral veel voor bij apps voor minder gangbare hardware, zoals ARM64 en ARMhf.

Als u liever docker-compose gebruikt dan onbewerkte Docker, kunt u ervoor kiezen om een ​​bepaald stuk software niet te gebruiken als er geen handige docker-compose.yml in de GitHub-repository van het project staat.

docker-autocompose maakt het eenvoudig om automatisch een samengesteld bestand te genereren

docker-autocompose is een Python-app die een werkend Compose-bestand kan maken van elke draaiende Docker-container.

Dit betekent dat u alleen eerst de docker-opdracht hoeft uit te voeren, vervolgens de gegenereerde uitvoer te nemen en de app te starten met docker-compose in de toekomst, of u kunt het toevoegen aan een bestaand Compose-bestand om al uw services te beheren op eenmaal.

Docker-autocompose op Linux installeren

Aangezien docker-autocompose wordt geleverd als een Python-app, moet Python PIP op uw Linux-systeem zijn geïnstalleerd.

Om Python PIP op Debian of Ubuntu te installeren:

sudo geschikt installeren python3-pip

Installeer PIP op Arch Linux en zijn derivaten met behulp van:

sudo pacman -S python-pip

Voer het volgende uit om PIP op CentOS en Red Hat Enterprise Linux te installeren:

sudo jammie installeren python3 python3-wiel

Het zou vanzelfsprekend moeten zijn dat u dat ook moet doen hebben Docker en Docker Compose geïnstalleerd.

Kloon de GitHub-repository voor docker-autocompose en ga naar de nieuwe map:

gek kloon https://github.com/Red5d/docker-autocompose.git
CD docker-autocompose

Installeer nu docker-autocompose door het volgende uit te voeren:

sudopython3opgericht.pyinstalleren

docker-autocompose is nu geïnstalleerd.

Gebruik docker-autocompose om Compose-bestanden te genereren

Vaak tijdens het zoeken naar essentiële Linux-apps, je zult een geweldig project tegenkomen dat wordt geleverd met Docker-afbeeldingen maar zonder een Compose-bestand. Een voorbeeld hiervan is de uitstekende browser-toegankelijke IRC-client, Verzenden.

Maak een directory voor Dispatch om te gebruiken:

mkdir ~/verzending

Download en start de client op poort 8080 van uw lokale machine met:

havenarbeider run -p 8080:80 -v /home/david/verzending:/data --herstart nee -d khlieng/verzenden

Ga naar localhost: 8080 in uw browser om te controleren of Dispatch werkt en vertel vervolgens docker-autocompose om de inhoud van het Compose-bestand te genereren vanuit de actieve container met:

sudo autocompose.py <containernaam-of-id>

In dit geval is de containernaam verzending en is de container-ID onmiddellijk na het uitvoeren van de docker-opdracht als uitvoer in uw terminal verschenen.

Als alternatief kunt u Compose-bestandsinhoud maken die u kunt gebruiken om al uw actieve Docker-containers op te starten met:

sudo autocompose.py $(docker ps -aq)

Er wordt geen Docker Compose-bestand gegenereerd, dus u moet de stdout naar uw klembord kopiëren en vervolgens een nieuw bestand maken met:

nanodocker-componeren.yml

Plak de inhoud van je klembord, sla op en sluit nano af met Ctrl+O, Dan Ctrl+X.

U kunt nu al uw containers in één keer starten met:

docker-samenstellen up -d

Als alternatief kunt u docker-autocompose uitvoeren met behulp van Docker zelf door het volgende uit te voeren:

docker-run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose <extra-namen-of-id's>

...wat een commando is dat je eraan herinnert waarom je docker-autocompose nodig hebt om mee te beginnen.

Maak direct werkende Compose-bestanden van actieve Docker-containers

Docker en Docker Compose zijn een steeds belangrijker onderdeel van het Linux-app-ecosysteem en bewijzen dat vooral waardevol voor zelfhostende sites en services op het alomtegenwoordige Raspberry Pi single-board computer.

Als u nog niet bent begonnen met het creëren van uw eigen online ecosysteem, moet u eens kijken naar enkele van de geweldige webgerichte projecten die u op de Pi kunt uitvoeren.