So erstellen Sie Ihr eigenes Docker-Image unter Linux

Wollten Sie schon immer Ihr eigenes Docker- Image erstellen ? Wie sich herausstellt, ist dies mit einer sogenannten „Docker-Datei“ möglich. In dieser Anleitung erfahren Sie, wie Sie Ihr eigenes Docker-Image erstellen.

So installieren Sie Docker unter Linux

Sie müssen Docker auf Ihrem Linux-Server installiert haben, bevor Sie versuchen, ein neues Image zu erstellen. Glücklicherweise lässt sich Docker problemlos auf einer Vielzahl von Linux-Betriebssystemen installieren. In diesem Handbuch konzentrieren wir uns auf Ubuntu, Debian , Arch Linux, Fedora und OpenSUSE .

Um Docker zu installieren, öffnen Sie ein Terminal. Sobald es geöffnet ist, kann die Installation beginnen. Befolgen Sie die unten aufgeführten Installationsanweisungen, die dem von Ihnen verwendeten Linux-Betriebssystem entsprechen.

Ubuntu/Debian

Sie müssen zunächst den Softwareindex auf Ihrem Ubuntu/Debian-System aktualisieren. Führen Sie dazu den folgenden apt update- Befehl aus.

Sudo apt-Update

Sie müssen jetzt das HTTPS-Transportpaket installieren, um über HTTPS zu installieren. Sie müssen außerdem Curl und einige andere Pakete installieren. Diese Pakete können mit dem Befehl apt install installiert werden .

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

Nachdem die Pakete installiert sind, ist es an der Zeit, den Docker-GPG-Schlüssel auf Ihrem Ubuntu/Debian-System zu aktivieren. Dieser Schlüssel stellt sicher, dass die Installation von Paketen unter Ubuntu sicher ist.

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

Wenn der GPG-Schlüssel aktiviert ist, ist es an der Zeit, das Docker-Repo zu aktivieren. Führen Sie dazu den folgenden Echo- Befehl in einem Terminal aus.

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

Wenn Sie das Docker-Repository aktiviert haben, führen Sie den Befehl apt update erneut aus , um den Softwareindex zu aktualisieren.

Sudo apt-Update

Abschließend können Sie die benötigten Docker-Pakete auf Ubuntu oder Debian installieren.

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

Arch Linux

Wenn Sie Arch Linux verwenden, können Sie einfach den Befehl pacman -S ausführen und das „docker“-Paket installieren, um Docker auf Ihrem System zum Laufen zu bringen.

sudo pacman -S Docker

Wenn das Docker-Paket auf Ihrem Arch-System installiert ist, führen Sie die folgenden systemctl- Befehle aus, um die Software zu aktivieren.

sudo systemctl aktiviert Docker. sudo systemctl startet Docker

Fedora

Docker unter Fedora zum Laufen zu bringen ist ziemlich einfach. Verwenden Sie zunächst den Befehl dnf install , um die Software auf Ihrem System zu installieren.

sudo dnf Docker installieren

Sobald das Paket auf Ihrem Fedora-System installiert ist, aktivieren Sie es mit systemd.

sudo systemctl aktiviert Docker. sudo systemctl startet Docker

OpenSUSE

Damit Docker unter OpenSUSE funktioniert, müssen Sie das Docker-Repository hinzufügen.

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

Als nächstes aktualisieren Sie Zypper und installieren die Software.

Sudo Zypper Refresh

sudo zypper installiere docker-ce

Aktivieren Sie abschließend Docker auf Ihrem System mit systemd.

sudo systemctl aktiviert Docker. sudo systemctl startet Docker

So wählen Sie Ihr Basisbild aus

Jedes von DockerHub entnommene Docker-Image wird mit einem Basis-Image erstellt. Sie müssen also ein Basis-Image für Ihren Docker-Container auswählen. In diesem Handbuch verwenden wir Ubuntu, da es eines der am besten kompatiblen Linux-Betriebssysteme ist.

In dieser Anleitung zeigen wir Ihnen ein Beispiel, wie Sie mit Ubuntu 22.04 ein Drupal 10-Image erstellen. Diese Build-Anweisungen können jedoch auf alles angewendet werden, was Sie erstellen möchten, von Web-Apps bis hin zu Python-Programmen usw.

Öffnen Sie zunächst den Nano-Texteditor in einem Terminal. Sie verwenden Nano, um Ihre eigene Docker-Datei zu erstellen.

nano -w ~/dockerfile

Geben Sie im Nano-Texteditor den folgenden Code ein, um anzugeben, dass Sie Ubuntu verwenden möchten. Um Ubuntu 22.04 zu erhalten, geben Sie es an. Wenn Sie eine andere Ubuntu-Version verwenden möchten, finden Sie hier Informationen .

# Use the official Ubuntu base image
FROM ubuntu:22.04

So richten Sie das Arbeitsverzeichnis ein

Sie müssen ein Arbeitsverzeichnis in Ihrem Docker-Container einrichten. Das Arbeitsverzeichnis ist der Ort, an dem die Anwendung unter Ubuntu im Container bereitgestellt wird. In diesem Beispiel arbeiten wir mit Drupal 10. Drupal ist eine Webanwendung, daher müssen wir das WORKDIR auf /var/www/html/ festlegen.

Drücken Sie im Nano-Texteditor die Eingabetaste , um ein Leerzeichen zu erstellen. Fügen Sie dann den folgenden Code ein.

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

So installieren Sie die Programmabhängigkeiten

Die Abhängigkeiten der Anwendung, die Sie in Ihrem Docker-Image bereitstellen, müssen erfüllt sein. Wenn nicht die richtigen Abhängigkeiten im Image installiert sind, funktioniert es nicht. Wir erstellen ein Drupal 10-Image basierend auf Ubuntu 22.04, daher müssen wir der Datei alle Drupal 10-Abhängigkeiten hinzufügen.

Drücken Sie im Nano-Texteditor die Eingabetaste , um ein Leerzeichen zu erstellen. Fügen Sie dann den folgenden Code ein.

# 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

So kopieren Sie den Programmcode

Der nächste Schritt im Prozess besteht darin, Ihre Docker-Datei mit dem Programmcode zu versehen. Als Beispiel verwenden wir erneut Drupal 10. Daher müssen wir der Docker-Datei die Möglichkeit geben, Drupal 10 herunterzuladen und zu extrahieren.

Drücken Sie im Nano-Texteditor die Eingabetaste , um eine neue Zeile zu erstellen. Fügen Sie dann den folgenden Code hinzu, damit Ihre Docker-Datei Drupal 10 herunterladen kann.

# 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 .

So legen Sie Ports offen

Jedes Mal, wenn Sie einen Docker-Container bereitstellen, greift dieser auf Ports zu. Wenn Sie beispielsweise den Standard-Syncthing-Container ausführen, wird Port 8384 verfügbar gemacht. Nextcloud? Port 8080 und 80. Ihr Container muss die richtigen Ports freigeben, damit er ordnungsgemäß funktioniert.

Stellen Sie zunächst fest, auf welche Ports das von Ihnen bereitgestellte Programm Zugriff benötigt. In diesem Beispiel stellen wir Drupal 10 bereit. Da Drupal 10 ein CMS-System für einen Webserver ist, benötigt es Port 80. Daher legen wir in der Nano-Textdatei Port 80 offen.

# Expose the Drupal port EXPOSE 80

So legen Sie den Standardbefehl fest

Sie müssen den Standardbefehl in Ihrer Docker-Datei festlegen, damit Ihr Image beim Erstellen und Bereitstellen automatisch mit der Ausführung des Programms beginnt. In unserem Beispiel möchten wir, dass Drupal 10 sofort startet, sobald der Container bereitgestellt wird. Daher müssen wir der Docker-Datei einen Startbefehl hinzufügen.

Drücken Sie im Nano-Texteditor die Eingabetaste , um ein neues Leerzeichen in der Datei zu erstellen. Fügen Sie dann den folgenden Code ein.

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

Wenn Sie dieses letzte Codebit zur Datei hinzugefügt haben, speichern Sie es, indem Sie Strg + O drücken , und beenden Sie den Nano-Texteditor mit Strg + X. Die Docker-Datei sollte wie der folgende Code aussehen.

Hinweis: Dies ist eine Beispiel-Docker-Datei. Sie können das Drupal-Beispiel als Referenz verwenden, um Ihr eigenes Beispiel für jede gewünschte Anwendung zu erstellen.

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"]

So erstellen Sie das Image

Um Ihr neues Docker-Image mit der von Ihnen erstellten Docker-Datei zu erstellen, geben Sie den folgenden Docker-Build- Befehl ein.

sudo docker build -t my-docker-image .

Der obige Befehl erstellt Ihr Docker-Image.

So stellen Sie das Image bereit

Um Ihr neues Image in einem Container bereitzustellen, müssen Sie den Docker-Run- Befehl verwenden . Um beispielsweise das neu erstellte Drupal 10-Ubuntu-Image auf Port 80 auszuführen, gehen Sie wie folgt vor.

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


So installieren Sie GitLab auf Ubuntu Server

So installieren Sie GitLab auf Ubuntu Server

Möchten Sie GitLab auf Ihrem Ubuntu-Server zum Laufen bringen? GitLab ist eine leistungsstarke selbsthostbare Alternative zu Diensten wie GitHub. Damit können Sie

Absicherung eines Ubuntu-Linux-Servers mit SELinux

Absicherung eines Ubuntu-Linux-Servers mit SELinux

Erfahren Sie, wie Sie Ihrem Ubuntu-Linux-Server zusätzliche Sicherheit verleihen können, indem Sie SELinux darauf installieren und aktivieren.

Konfigurieren Sie NFS auf einem Linux-Server mit Cockpit

Konfigurieren Sie NFS auf einem Linux-Server mit Cockpit

Benötigen Sie eine einfachere Möglichkeit, NFS-Freigaben auf Ihrem Linux-Server bereitzustellen? Erfahren Sie, wie Sie NFS-Freigaben mit der Cockpit-App bereitstellen.

So aktualisieren Sie auf Ubuntu 22.04 LTS

So aktualisieren Sie auf Ubuntu 22.04 LTS

Die langfristige Unterstützung für Ubuntu 22.04 ist da! Erfahren Sie, wie Sie Ihren Desktop oder Laptop auf die neueste Ubuntu-Version aktualisieren.

So installieren Sie die neuesten Nvidia-GPU-Treiber unter Linux

So installieren Sie die neuesten Nvidia-GPU-Treiber unter Linux

So installieren Sie die neuesten Nvidia GPU-Treiber unter Linux

So übertragen Sie Dateien in einen Docker-Container

So übertragen Sie Dateien in einen Docker-Container

Müssen Sie Dateien in Ihren Docker-Container übertragen? Mit dem Docker-CP-Tool können Sie Dateien ganz einfach in und aus Containern verschieben.

So installieren Sie eine DEB-Datei unter Linux

So installieren Sie eine DEB-Datei unter Linux

Was ist eine DEB-Datei? Was machst du damit? Erfahren Sie mehr über die vielen Möglichkeiten, wie Sie DEB-Dateien auf Ihrem Linux-PC installieren können.

So bringen Sie GOG Galaxy unter Linux zum Laufen

So bringen Sie GOG Galaxy unter Linux zum Laufen

Besitzen Sie Spiele auf GOG.com? Möchten Sie den GOG Galaxy-Client auf Ihrem Linux-PC einrichten, um einige Videospiele zu genießen? Befolgen Sie diese Anleitung, wie wir sie zeigen

So installieren Sie Docker Engine unter CentOS

So installieren Sie Docker Engine unter CentOS

Docker Engine ist ein offenes Containerisierungsprogramm für Linux und andere Plattformen. Docker Engine verwaltet eigenständige Container, die ähnlich funktionieren wie

So bündeln Sie alle Ihre Chats mit Ferdi in einem

So bündeln Sie alle Ihre Chats mit Ferdi in einem

Sind Sie es leid, Slack, Discord und viele andere Produktivitätstools auf Ihrem Linux-System zu installieren? Wünschen Sie sich, dass sie alle zu einem zusammengefasst werden könnten?