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.