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アプリケーションをデプロイできます。