GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So Dockerisieren Sie Python-Anwendungen mit Miniconda

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.


Linux
  1. So packen Sie Python-Anwendungen für Linux

  2. So installieren Sie Python unter Linux

  3. Wie Kali mit dem bevorstehenden Python 2 End-of-Life umgeht

  4. So starten Sie Startanwendungen mit Verzögerung unter Linux

  5. So verwenden Sie den Export mit Python unter Linux

So installieren Sie Flask mit Python 3 unter Ubuntu 18.04

So führen Sie einen Shell-Befehl mit Python aus

So finden Sie installierte Anwendungen mit installierter Größe in Linux

So installieren Sie Linux-Anwendungen offline mit Cube

So installieren Sie Python 2.7 unter CentOS 7.1 oder 6.7 mit Anaconda

So installieren Sie Apache mit Python Mod_wsgi unter Debian 10