GNU/Linux >> Znalost Linux >  >> Linux

Jak Dockerize Python aplikací s Miniconda

Python je populární univerzální programovací jazyk používaný pro širokou škálu aplikací. Používají jej vývojáři softwaru jako podpůrný jazyk pro řízení a správu sestavení, testování a další účely.

Docker je kontejnerová platforma s otevřeným zdrojovým kódem, která vám umožňuje spouštět vaši aplikaci v odlehčeném kontejneru. Vaše aplikace tak poběží přesně stejným způsobem jako v produkci se stejným operačním systémem.

V tomto příspěvku vám ukážeme, jak dockerizovat aplikace Python pomocí Miniconda na CentOS 8.

Předpoklady

  • Nový server CentOS 8 na cloudové platformě Atlantic.Net
  • Heslo uživatele root nakonfigurované na vašem serveru

Krok 1 – Vytvořte cloudový server Atlantic.Net

Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte CentOS 8 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.

Jakmile se přihlásíte k serveru CentOS 8, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.

dnf update -y

Krok 2 – Instalace Docker CE

Můžete jej přidat pomocí následujícího příkazu:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Jakmile je repo vytvořeno, spusťte následující příkaz a nainstalujte Docker CE do vašeho systému.

dnf install docker-ce --nobest

Po dokončení instalace spusťte službu Docker a povolte její spuštění při restartu systému pomocí následujícího příkazu:

systemctl start docker
systemctl enable docker

Dále ověřte nainstalovanou verzi Dockeru pomocí následujícího příkazu:

docker --version

Měli byste získat následující výstup:

Docker version 20.10.5, build 55c4c88

Krok 3 – Vytvořte soubor Docker pro nasazení aplikace Python

V této části vytvoříme adresář pro projekt Python a vytvoříme soubor Dockerfile se všemi požadovanými informacemi pro nasazení aplikace Python.

Nejprve vytvořte adresář pomocí následujícího příkazu:

mkdir project

Dále změňte adresář na projekt a vytvořte Dockerfile pomocí následujícího příkazu:

cd project
nano Dockerfile

Přidejte následující řádky:

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

Po dokončení uložte a zavřete soubor.

Výše uvedený soubor stáhne minimální obraz Pythonu, nainstaluje Minicondu, vytvoří prostředí Pythonu a vytvoří jednoduchou aplikaci Hello World.

Krok 4 – Vytvořte obrázek aplikace Python

Nyní budete muset vytvořit obrázek pomocí souboru Dockerfile, který jsme vytvořili v předchozím kroku.

Nejprve změňte adresář na projekt pomocí následujícího příkazu:

cd project

Dále vytvořte aplikaci Python spuštěním následujícího příkazu:

docker build -t python-app .

Měli byste získat následující výstup:

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

Nyní můžete zkontrolovat stažené obrázky pomocí následujícího příkazu:

docker images

Všechny obrázky byste měli vidět v následujícím výstupu:

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
python-app   latest    78e4f8e7e05e   24 seconds ago   907MB
python       slim      ce689abb4f0d   10 days ago      118MB

Krok 5 – Spusťte kontejner

V tomto okamžiku je obraz aplikace Python připraven. Nyní můžete kontejner spustit z obrázku python-app pomocí následujícího příkazu:

docker run python-app

Výstup vaší pythonové aplikace byste měli vidět v následujícím výstupu:

Hello World!

Můžete se také připojit ke svému kontejneru aplikace Python a spustit aplikaci.

Chcete-li to provést, spusťte kontejner znovu pomocí následujícího příkazu:

docker run -it python-app /bin/bash

Budete připojeni ke kontejneru aplikace python, jak je znázorněno níže:

(python-app) [email protected]:/#

Nyní spusťte aplikaci Python Hello World pomocí následujícího příkazu:

(python-app) [email protected]:/# python-app

Měli byste získat následující výstup:

Hello World!

Verzi Pythonu můžete také ověřit pomocí následujícího příkazu:

(python-app) [email protected]:/# python --version

Výstup:

Python 3.6.13 :: Anaconda, Inc.

Nyní můžete opustit kontejner pomocí následujícího příkazu:

(python-app) [email protected]:/# exit

Závěr

Ve výše uvedené příručce jste se naučili, jak ukotvit aplikaci Python pomocí Miniconda na CentOS 8. Nyní můžete nasadit svou aplikaci Python v odlehčeném a kontejnerizovaném prostředí na svém hostingovém účtu VPS od Atlantic.Net.


Linux
  1. Jak zabalit aplikace Python pro Linux

  2. Jak nainstalovat Python na Linux

  3. Jak se Kali vypořádá s nadcházejícím Python 2 End-of-Life

  1. Jak spravovat více verzí Pythonu pomocí Pyenv v systému Linux

  2. Jak zkompilovat a nainstalovat Python s podporou OpenSSL?

  3. Jak dockerizovat aplikace Pythonu pomocí Miniconda [hybridní přístup]

  1. Jak spouštět aplikace se zpožděním v systému Linux

  2. Jak používat export s Pythonem na Linuxu

  3. Jak zabít python skript pomocí bash skriptu