Python ist eine beliebte Allzweck-Programmiersprache, die für eine Vielzahl von Anwendungen verwendet wird. Es wird von Softwareentwicklern als Unterstützungssprache für Build-Steuerung und -Verwaltung, Tests und andere Zwecke verwendet.
Docker ist eine containerisierte Open-Source-Plattform, mit der Sie Ihre Anwendung in einem leichten Container ausführen können. Auf diese Weise läuft Ihre Anwendung genau so wie in der Produktion mit demselben Betriebssystem.
In diesem Beitrag zeigen wir Ihnen, wie Sie Python-Anwendungen mit Miniconda auf CentOS 8 andocken.
Voraussetzungen
- Ein frischer CentOS 8-Server auf der Atlantic.Net Cloud Platform
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie CentOS 8 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem CentOS 8-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2 – Docker CE installieren
Sie können es mit dem folgenden Befehl hinzufügen:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Sobald das Repo erstellt ist, führen Sie den folgenden Befehl aus, um Docker CE auf Ihrem System zu installieren.
dnf install docker-ce --nobest
Sobald die Installation abgeschlossen ist, starten Sie den Docker-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl start docker systemctl enable docker
Überprüfen Sie als Nächstes die installierte Version von Docker mit dem folgenden Befehl:
docker --version
Sie sollten die folgende Ausgabe erhalten:
Docker version 20.10.5, build 55c4c88
Schritt 3 – Erstellen Sie eine Docker-Datei zum Bereitstellen der Python-App
In diesem Abschnitt erstellen wir ein Verzeichnis für das Python-Projekt und erstellen eine Docker-Datei mit allen erforderlichen Informationen zum Bereitstellen der Python-App.
Erstellen Sie zunächst ein Verzeichnis mit dem folgenden Befehl:
mkdir project
Ändern Sie als Nächstes das Verzeichnis in project und erstellen Sie mit dem folgenden Befehl eine Dockerfile:
cd project nano Dockerfile
Fügen Sie die folgenden Zeilen hinzu:
FROM python:slim RUN apt-get update && apt-get -y upgrade \ && apt-get install -y --no-install-recommends \ git \ wget \ g++ \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PATH="/root/miniconda3/bin:${PATH}" ARG PATH="/root/miniconda3/bin:${PATH}" RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \ && mkdir /root/.conda \ && bash Miniconda3-latest-Linux-x86_64.sh -b \ && rm -f Miniconda3-latest-Linux-x86_64.sh \ && echo "Running $(conda --version)" && \ conda init bash && \ . /root/.bashrc && \ conda update conda && \ conda create -n python-app && \ conda activate python-app && \ conda install python=3.6 pip && \ echo 'print("Hello World!")' > python-app.py RUN echo 'conda activate python-app \n\ alias python-app="python python-app.py"' >> /root/.bashrc ENTRYPOINT [ "/bin/bash", "-l", "-c" ] CMD ["python python-app.py"]
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Die obige Datei lädt das minimale Python-Image herunter, installiert Miniconda, erstellt eine Python-Umgebung und erstellt eine einfache „Hello World“-Anwendung.
Schritt 4 – Python-Anwendungs-Image erstellen
Jetzt müssen Sie das Image mit dem Dockerfile erstellen, das wir im vorherigen Schritt erstellt haben.
Ändern Sie zuerst das Verzeichnis mit dem folgenden Befehl in project:
cd project
Erstellen Sie als Nächstes die Python-Anwendung, indem Sie den folgenden Befehl ausführen:
docker build -t python-app .
Sie sollten die folgende Ausgabe erhalten:
Downloading and Extracting Packages setuptools-52.0.0 | 724 KB | ########## | 100% certifi-2020.12.5 | 140 KB | ########## | 100% python-3.6.13 | 29.7 MB | ########## | 100% pip-21.0.1 | 1.8 MB | ########## | 100% Preparing transaction: ...working... done Verifying transaction: ...working... done Executing transaction: ...working... done Removing intermediate container 10f97804ad82 ---> 3662950574f9 Step 6/8 : RUN echo 'conda activate python-app \nalias python-app="python python-app.py"' >> /root/.bashrc ---> Running in faab9e188650 Removing intermediate container faab9e188650 ---> 8ee98d205c5c Step 7/8 : ENTRYPOINT [ "/bin/bash", "-l", "-c" ] ---> Running in 3e74eb8fd8b7 Removing intermediate container 3e74eb8fd8b7 ---> 6c6d83dfd01f Step 8/8 : CMD ["python python-app.py"] ---> Running in 4d8c066aeefc Removing intermediate container 4d8c066aeefc ---> 78e4f8e7e05e Successfully built 78e4f8e7e05e Successfully tagged python-app:latest
Sie können nun die heruntergeladenen Bilder mit dem folgenden Befehl überprüfen:
docker images
Sie sollten alle Bilder in der folgenden Ausgabe sehen:
REPOSITORY TAG IMAGE ID CREATED SIZE python-app latest 78e4f8e7e05e 24 seconds ago 907MB python slim ce689abb4f0d 10 days ago 118MB
Schritt 5 – Container starten
An diesem Punkt ist das Python-Anwendungsimage fertig. Sie können den Container jetzt aus dem python-app-Image mit dem folgenden Befehl starten:
docker run python-app
Sie sollten die Ausgabe Ihrer Python-Anwendung in der folgenden Ausgabe sehen:
Hello World!
Sie können sich auch mit Ihrem Python-Anwendungscontainer verbinden und die Anwendung ausführen.
Führen Sie dazu den Container erneut mit dem folgenden Befehl aus:
docker run -it python-app /bin/bash
Sie werden wie unten gezeigt mit dem Python-App-Container verbunden:
(python-app) [email protected]:/#
Führen Sie nun Ihre Python Hello World-Anwendung mit dem folgenden Befehl aus:
(python-app) [email protected]:/# python-app
Sie sollten die folgende Ausgabe erhalten:
Hello World!
Sie können Ihre Python-Version auch mit dem folgenden Befehl überprüfen:
(python-app) [email protected]:/# python --version
Ausgabe:
Python 3.6.13 :: Anaconda, Inc.
Sie können den Container jetzt mit dem folgenden Befehl verlassen:
(python-app) [email protected]:/# exit
Schlussfolgerung
In der obigen Anleitung haben Sie gelernt, wie Sie eine Python-Anwendung mit Miniconda auf CentOS 8 andocken. Jetzt können Sie Ihre Python-Anwendung in einer einfachen und containerisierten Umgebung auf Ihrem VPS-Hosting-Konto von Atlantic.Net bereitstellen.