GNU/Linux >> Linux の 問題 >  >> Linux

Minicondaを使用してPythonアプリケーションをDocker化する方法

Pythonは、さまざまなアプリケーションで使用される一般的な汎用プログラミング言語です。これは、ソフトウェア開発者によって、ビルドの制御と管理、テスト、およびその他の目的のサポート言語として使用されます。

Dockerは、軽量のコンテナーでアプリケーションを実行できるようにするオープンソースのコンテナー化されたプラットフォームです。このようにして、アプリケーションは、同じオペレーティングシステムを使用する本番環境とまったく同じ方法で実行されます。

この投稿では、CentOS8でPythonアプリケーションをMinicondaとドッキングする方法を紹介します。

前提条件

  • Atlantic.Netクラウドプラットフォーム上の新しいCentOS8サーバー
  • サーバーで構成されているrootパスワード

ステップ1-Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてCentOS8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

CentOS 8サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

dnf update -y

ステップ2–DockerCEをインストールする

次のコマンドで追加できます:

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

リポジトリが作成されたら、次のコマンドを実行してDockerCEをシステムにインストールします。

dnf install docker-ce --nobest

インストールが完了したら、次のコマンドを使用してDockerサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start docker
systemctl enable docker

次に、次のコマンドを使用して、インストールされているDockerのバージョンを確認します。

docker --version

次の出力が得られるはずです:

Docker version 20.10.5, build 55c4c88

ステップ3–PythonアプリをデプロイするためのDockerファイルを作成する

このセクションでは、Pythonプロジェクトのディレクトリを作成し、Pythonアプリをデプロイするために必要なすべての情報を含むDockerfileを作成します。

まず、次のコマンドでディレクトリを作成します。

mkdir project

次に、ディレクトリをプロジェクトに変更し、次のコマンドを使用してDockerfileを作成します。

cd project
nano Dockerfile

次の行を追加します:

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

終了したら、ファイルを保存して閉じます。

上記のファイルは、Pythonの最小限のイメージをダウンロードし、Minicondaをインストールし、Python環境を作成し、単純なHelloWorldアプリケーションを作成します。

ステップ4–Pythonアプリケーションイメージを作成する

ここで、前の手順で作成したDockerfileを使用してイメージをビルドする必要があります。

まず、次のコマンドを使用して、プロジェクトするディレクトリを変更します。

cd project

次に、次のコマンドを実行してPythonアプリケーションをビルドします。

docker build -t python-app .

次の出力が得られるはずです:

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

これで、次のコマンドを使用して、ダウンロードした画像を確認できます。

docker images

次の出力にすべての画像が表示されます。

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

ステップ5–コンテナを起動する

これで、Pythonアプリケーションイメージの準備が整いました。これで、次のコマンドを使用してpython-appイメージからコンテナーを起動できます。

docker run python-app

次の出力にPythonアプリケーションの出力が表示されます。

Hello World!

Pythonアプリケーションコンテナに接続してアプリケーションを実行することもできます。

これを行うには、次のコマンドを使用してコンテナを再度実行します。

docker run -it python-app /bin/bash

以下に示すように、python-appコンテナに接続されます。

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

次に、次のコマンドを使用してPythonHelloWorldアプリケーションを実行します。

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

次の出力が得られるはずです:

Hello World!

次のコマンドを使用してPythonのバージョンを確認することもできます:

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

出力:

Python 3.6.13 :: Anaconda, Inc.

これで、次のコマンドを使用してコンテナを終了できます。

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

結論

上記のガイドでは、CentOS 8でMinicondaを使用してPythonアプリケーションをドッキングする方法を学習しました。これで、Atlantic.NetのVPSホスティングアカウントの軽量でコンテナ化された環境にPythonアプリケーションをデプロイできます。


Linux
  1. LinuxでPyenvを使用して複数のPythonバージョンを管理する方法

  2. OpenSSLサポートを使用してPythonをコンパイルおよびインストールする方法は?

  3. Minicondaを使用してPythonアプリケーションをDocker化する方法[ハイブリッドアプローチ]

  1. Linux用のPythonアプリケーションをパッケージ化する方法

  2. Kali は今後の Python 2 のサポート終了にどのように対処するか

  3. Linux で起動アプリケーションを遅延して起動する方法

  1. LinuxにPythonをインストールする方法

  2. Linux 上の Python で export を使用する方法

  3. bashスクリプトでpythonスクリプトを強制終了する方法