Hoe u uw eigen Docker-image op Linux kunt bouwen

Heb je ooit je eigen Docker -image willen bouwen ? Het blijkt dat je dat kunt doen met iets dat een "Dockerfile" wordt genoemd. In deze handleiding bespreken we hoe u uw eigen Docker-image kunt bouwen.

Hoe Docker op Linux te installeren

U moet Docker op uw Linux-server hebben geïnstalleerd voordat u probeert een nieuwe afbeelding te maken. Gelukkig is docker eenvoudig te installeren op een breed scala aan Linux-besturingssystemen. In deze gids zullen we ons concentreren op Ubuntu, Debian , Arch Linux, Fedora en OpenSUSE .

Om Docker te installeren, opent u een terminal. Zodra het is geopend, is de installatie klaar om te beginnen. Volg de onderstaande installatie-instructies die overeenkomen met het Linux-besturingssysteem dat u gebruikt.

Ubuntu/Debian

U moet eerst de software-index op uw Ubuntu/Debian-systeem bijwerken. Om dat te doen, voert u de onderstaande apt update- opdracht uit.

sudo apt-update

U moet nu het HTTPS-transportpakket installeren om via HTTPS te installeren. Je moet ook Curl en een paar andere pakketten installeren. Deze pakketten kunnen worden geïnstalleerd met de opdracht apt install .

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Nu de pakketten zijn geïnstalleerd, is het tijd om de Docker GPG-sleutel op uw Ubuntu/Debian-systeem in te schakelen. Deze sleutel zorgt ervoor dat het veilig is om pakketten op Ubuntu te installeren.

krul -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Met de GPG-sleutel ingeschakeld, is het tijd om de Docker-repo in te schakelen. Voer hiervoor het volgende echo- commando uit in een terminal.

echo "deb [arch=amd64 ondertekend door=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Wanneer u de Docker-opslagplaats hebt ingeschakeld, voert u de opdracht apt update opnieuw uit om de software-index te vernieuwen.

sudo apt-update

Ten slotte kunt u de Docker-pakketten die u nodig hebt op Ubuntu of Debian installeren.

sudo apt install docker-ce docker-ce-cli containerd.io

Boog Linux

Als u Arch Linux gebruikt, kunt u eenvoudig de opdracht pacman -S uitvoeren en het "docker" -pakket installeren om Docker op uw systeem te laten werken.

sudo pacman -S koppelaar

Terwijl het Docker-pakket op uw Arch-systeem is geïnstalleerd, voert u de volgende systemctl- opdrachten uit om de software in te schakelen.

sudo systemctl docker inschakelen sudo systemctl start docker

Fedora

Docker aan Fedora laten werken is vrij eenvoudig. Gebruik om te beginnen de opdracht dnf install om de software op uw systeem te installeren.

sudo dnf installeer docker

Zodra het pakket op je Fedora-systeem is geïnstalleerd, schakel je het in met systemd.

sudo systemctl docker inschakelen sudo systemctl start docker

OpenSUSE

Om Docker op OpenSUSE te laten werken, moet u de Docker-repo toevoegen.

sudo zypper addrepo https://download.docker.com/linux/opensuse/$(awk -F= '/^VERSION_ID/{print $2}' /etc/os-release)/x86_64/stable docker

Vernieuw vervolgens Zypper en installeer de software.

sudo zypper vernieuwen

sudo zypper installeer docker-ce

Schakel ten slotte Docker op uw systeem in met systemd.

sudo systemctl docker inschakelen sudo systemctl start docker

Hoe u uw basisafbeelding kiest

Elke Docker-image uit DockerHub is gebouwd met een basisimage. U moet dus een basisafbeelding kiezen voor uw Docker-container. In deze handleiding gebruiken we Ubuntu, omdat het een van de meest compatibele Linux-besturingssystemen is.

In deze gids laten we u een voorbeeld zien van hoe u een Drupal 10-image kunt bouwen met Ubuntu 22.04. Deze bouwinstructies kunnen echter van toepassing zijn op alles wat u wilt maken, van web-apps tot Python-programma's, enz.

Open om te beginnen de Nano-teksteditor in een terminal. Je gaat Nano gebruiken om je eigen Dockerfile te maken.

nano -w ~/dockerfile

Voer in de Nano-teksteditor de volgende code in om aan te geven dat u Ubuntu wilt gebruiken. Geef het op om Ubuntu 22.04 te krijgen. Als u een andere versie van Ubuntu wilt gebruiken, vindt u hier informatie .

# Use the official Ubuntu base image
FROM ubuntu:22.04

Hoe de werkdirectory in te stellen

U moet een werkmap instellen in uw Docker-container. De werkmap is waar de toepassing wordt geïmplementeerd op Ubuntu in de container. In dit voorbeeld werken we met Drupal 10. Drupal is een webapplicatie, dus we moeten de WORKDIR instellen als /var/www/html/.

Druk in de Nano-teksteditor op Enter om een ​​spatie te maken. Plak vervolgens de volgende code.

# Set the working directory in the container WORKDIR /var/www/html

Hoe de programma-afhankelijkheden te installeren

De toepassing die u in uw Docker-image implementeert, moet aan de afhankelijkheden voldoen. Als de juiste afhankelijkheden niet in de afbeelding zijn geïnstalleerd, werkt deze niet. We maken een Drupal 10-image op basis van Ubuntu 22.04, dus we moeten alle Drupal 10-afhankelijkheden aan het bestand toevoegen.

Druk in de Nano-teksteditor op Enter om een ​​spatie te maken. Plak vervolgens de volgende code.

# Install dependencies RUN apt-get update && apt-get install -y \ apache2 \ php \ libapache2-mod-php \ php-curl \ php-gd \ php-intl \ php-mbstring \ php-mysql \ php-pgsql \ php-xml \ php-zip \ unzip

Hoe de programmacode te kopiëren

De volgende stap in het proces is om uw Docker-bestand te voorzien van de programmacode. Opnieuw gebruiken we Drupal 10 als voorbeeld. We moeten de Dockerfile dus voorzien van de middelen om Drupal 10 te downloaden en uit te pakken.

Druk in de Nano-teksteditor op Enter om een ​​nieuwe regel te maken. Voeg vervolgens de volgende code toe zodat uw Dockerfile Drupal 10 kan downloaden.

# Download and install Drupal RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \ tar -xvf drupal-10.2.tar.gz && \ mv drupal-10.2 .

Hoe poorten bloot te leggen

Elke keer dat u een Docker-container implementeert, krijgt deze toegang tot poorten. Als u bijvoorbeeld de standaard Syncthing-container uitvoert, wordt poort 8384 weergegeven. Nextcloud? Poort 8080 en 80. Uw container moet de juiste poorten vrijgeven om goed te kunnen werken.

Zoek eerst uit tot welke poorten het programma dat u implementeert toegang nodig heeft. In dit voorbeeld implementeren we Drupal 10. Aangezien Drupal 10 een CMS-systeem is voor een webserver, heeft het poort 80 nodig. Dus in het Nano-tekstbestand stellen we poort 80 bloot.

# Expose the Drupal port EXPOSE 80

Hoe de standaardopdracht in te stellen

U moet de standaardopdracht in uw Dockerfile instellen, zodat wanneer uw afbeelding wordt gebouwd en geïmplementeerd, deze automatisch begint met het uitvoeren van het programma. In ons voorbeeld willen we dat Drupal 10 onmiddellijk start zodra de container is geïmplementeerd, dus we moeten een startcommando toevoegen aan de Dockerfile.

Druk in de Nano-teksteditor op Enter om een ​​nieuwe ruimte in het bestand te maken. Plak vervolgens de volgende code.

# Start Apache in the foreground CMD ["apache2ctl", "-D", "FOREGROUND"]

Wanneer je dit laatste stukje code aan het bestand hebt toegevoegd, sla je het op door op Ctrl + O te drukken en sluit je de Nano-teksteditor af met Ctrl + X . De Dockerfile zou eruit moeten zien als de onderstaande code.

Let op: dit is een voorbeeld Dockerfile. U kunt het Drupal-voorbeeld gebruiken als referentie om uw eigen voorbeeld te maken voor elke gewenste toepassing.

FROM ubuntu:22.04

# Set the working directory
WORKDIR /var/www/html

# Install dependencies
RUN apt-get update && apt-get install -y \
apache2 \
php \
libapache2-mod-php \
php-curl \
php-gd \
php-intl \
php-mbstring \
php-mysql \
php-pgsql \
php-xml \
php-zip \
unzip


# Download and install Drupal
RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \
tar -xvf drupal-10.2.tar.gz && \
mv drupal-10.2 .


# Expose the Drupal port
EXPOSE 80

# Start Apache in the foreground
CMD ["apache2ctl", "-D", "FOREGROUND"]

Hoe de afbeelding te bouwen

Om uw nieuwe Docker-image te bouwen met de Dockerfile die u hebt gemaakt, voert u de volgende docker build- opdracht in.

sudo docker build -t mijn-docker-image .

Met de bovenstaande opdracht wordt uw Docker-image gebouwd.

Hoe de afbeelding te implementeren

Om uw nieuwe afbeelding in een container te implementeren, moet u de opdracht docker run gebruiken . Om bijvoorbeeld de nieuw gebouwde Drupal 10 Ubuntu-image op poort 80 uit te voeren, doet u het volgende.

sudo docker run -d --name mijn-drupal-container -p 80:80 mijn-docker-image

Laat een reactie achter

Schermscheuren op Intel-graphics in Pardus Linux verhelpen: een resultaatgerichte handleiding

Schermscheuren op Intel-graphics in Pardus Linux verhelpen: een resultaatgerichte handleiding

Los schermscheuren met Intel-graphics in Pardus Linux op door te controleren of X11 of Wayland wordt gebruikt, de compositorinstellingen aan te passen, de vernieuwingsfrequentie te controleren, de actieve Xorg-driver te gebruiken en TearFree alleen in te schakelen wanneer dit nodig is.

Hoe configureer je de SLES 15-firewall met firewall-cmd?

Hoe configureer je de SLES 15-firewall met firewall-cmd?

Configureer firewalld op SLES 15: controleer zones, sta services of poorten toe, sla permanente regels op, herlaad veilig en controleer de toegang.

SLES Live Patching Configuratiehandleiding: Kernelupdates toepassen zonder opnieuw op te starten

SLES Live Patching Configuratiehandleiding: Kernelupdates toepassen zonder opnieuw op te starten

Schakel live kernelpatching in op SLES 15 SP7, pas ondersteunde patches toe zonder opnieuw op te starten, controleer actieve patches en begrijp wanneer een herstart van de kernel nog steeds nodig is.

Hoe schakel ik de FIPS-modus in op SUSE Linux Enterprise Server 15?

Hoe schakel ik de FIPS-modus in op SUSE Linux Enterprise Server 15?

Schakel de FIPS-modus in op SLES 15 met behulp van het door SUSE ondersteunde installatieprogramma, herstart het systeem veilig, controleer de status van de kernel en het cryptografische beleid en controleer de certificeringslimieten.

Hoe installeer je Google Chrome op Gooroom OS zonder de beveiligingsrichtlijnen te schenden?

Hoe installeer je Google Chrome op Gooroom OS zonder de beveiligingsrichtlijnen te schenden?

Installeer Google Chrome veilig op Gooroom OS met officiële .deb-pakketten, APT, beleidscontroles, update-instructies en oplossingen voor beheerde apparaten.

Hoe exporteer ik SLES-systeemlogboeken veilig naar een externe Syslog-server?

Hoe exporteer ik SLES-systeemlogboeken veilig naar een externe Syslog-server?

Stuur SLES-systeemlogboeken veilig door naar een externe syslog-server met rsyslog, TLS-certificaten, peer-naamverificatie, wachtrijen, validatie en testen.

SLES 15 Active Directory-integratie met SSSD: een stapsgewijze handleiding

SLES 15 Active Directory-integratie met SSSD: een stapsgewijze handleiding

Voeg SLES 15 toe aan Active Directory met SSSD via YaST. Bereid DNS en tijd voor, configureer domeinaanmeldingen, verifieer Kerberos en vergelijk SSSD, Winbind en realmd.

Los problemen met de Realtek RTL8821CE Wi-Fi-driver op in Pardus Linux.

Los problemen met de Realtek RTL8821CE Wi-Fi-driver op in Pardus Linux.

Los de RTL8821CE Wi-Fi-problemen op in Pardus Linux door de ingebouwde rtw88-driver, de Realtek-firmware, rfkill, NetworkManager en veilige terugvalopties te controleren.

Los het probleem "Tijdelijke fout bij het oplossen van DNS" op in Debian 12 met systemd-resolved.

Los het probleem "Tijdelijke fout bij het oplossen van DNS" op in Debian 12 met systemd-resolved.

Diagnoseer en los DNS-resolutieproblemen op in Debian 12 met systemd-resolved, inclusief problemen met resolv.conf, NetworkManager, networkd, cache en verificatie.

Hoe je Pardus Linux veilig naast Windows 11 kunt installeren (dual boot)

Hoe je Pardus Linux veilig naast Windows 11 kunt installeren (dual boot)

Installeer Pardus 25.2 naast Windows 11 door een back-up te maken, het Windows-volume te verkleinen, op te starten vanaf een UEFI USB-stick en de bestaande EFI- en herstelpartities te beschermen.