DockerコンテナにPythonアプリケーションをデプロイするプロセスの分析

DockerコンテナにPythonアプリケーションをデプロイするプロセスの分析

シンプルなアプリケーションの展開

1. ディレクトリ構造:

└── Pythonpro #ディレクトリ└── test.py #ファイル└── requirements.txt #ファイル└── Dockerfile #ファイル

2. Dockerfileファイルを書く

# 画像に基づいて
Python:3.6.4より
# コードフォルダを作成する 作業ディレクトリ/コード
mkdir /code を実行
#現在のコードファイルをコンテナ/コードにコピーします
コピー ./code
# 必要なパッケージをインストールする
pip install -r /code/requirements.txt -i https://pypi.douban.com/simple を実行します。
# cmd/codeの作業ディレクトリを指定する
WORKDIR /コード
#コンテナの起動時に実行されるコマンド
コマンド ["python","test.py"]

3. コンテナイメージを作成する

docker build -t テスト。

4. コンテナを実行する

docker run -it --name test --restart always --privileged=true python-test
--name: コンテナの名前を python-test として指定します。ここで、test は先ほどビルドしたイメージです。

--restart: always コンテナは終了時に常に再起動されます。

--privileged=true: コンテナ内のファイルを実行するために必要な権限。

Django アプリケーションのコンテナ化

1. ディレクトリ構造。このディレクトリは /home/Pythonpro に存在すると想定します。

└── Pythonpro #ディレクトリ└── manage.py #ファイル└── メインプロジェクト #ディレクトリ└── apps #ディレクトリ└── requirements.txt #ファイル└── Dockerfile #ファイル└── run.sh #ファイル

run.sh スクリプト

python /code/manage.py 実行サーバー 0.0.0.0:8000

2. Dockerfileファイルを書く

Python:3.6.4より
mkdir /code \ を実行します
&&apt-get アップデート \
&&apt-get -y をインストール freetds-dev \
&&apt-get -y unixodbc-dev をインストール
コピー ./code 
pip install -r /code/requirements.txt -i https://pypi.douban.com/simple を実行します。
WORKDIR /コード
CMD ["/bin/bash","run.sh"]

3. イメージを構築する

docker build -t webtest を実行します。

4. コンテナを実行する

docker run -it -p 6500:8000 -v /home/Pythonpro:/code --name web --restart always --privileged=true webtest

-p: コンテナのポート8000​​をホストのポート6500にマップします

-v: ホストディレクトリ /home/Pythonprot はコンテナディレクトリ /code にマップされます

--name: コンテナの名前をweb、webtestでビルドされたイメージとして指定します

--restart: always コンテナは終了時に常に再起動されます

--privileged=true: コンテナ内のファイルの実行に必要な権限

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • クエリのためにCassandraコンテナに接続するPythonについて
  • DockerコンテナでPythonを実行するディープラーニング環境を構築する方法
  • Pythonの基本構文コンテナの詳細な説明
  • Python 統計ハッシュ可能オブジェクト コンテナ カウンターの詳細な説明
  • Python コンテナの概要
  • Pythonコンテナ組み込みの一般的な関数操作

<<:  デジタルテーブル特殊効果を実現するネイティブJS

>>:  MySQL MHA のセットアップと切り替えに関するいくつかのエラー ログの概要

推薦する

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...

React Native スキャフォールディングの基本的な使い方の詳細な説明

プロジェクトを構築する対応するパスでコマンドラインを実行します: react-native init...

Vue vee-validateプラグインの簡単な使い方

目次1. インストール2. インポート3. 検証ルールを定義します(エクスポート用に js ファイル...

Ubuntu 14.04 で QT5 をインストール、設定、アンインストールするための詳細な手順

1. 以前 QT5.13 バージョンをダウンロードしましたが、インストール後、Qtcreator を...

JavaScript を使用して userAgent を通じていくつかの一般的なブラウザを判別する方法

序文通常、h5 ページを作成するときは、WeChat、QQ、Weibo などのエコシステム内でトラフ...

Mysql Explainコマンドの使用と分析

mysql explain コマンドは、MySQL がインデックスを使用して選択ステートメントを処理...

Docker で既存のイメージに基づいて新しいイメージを構築する方法

既存のイメージから新しいイメージを構築することは、Dockerfile ドキュメントを通じて行われま...

マウスで画像を動かすJavaScript

この記事では、マウスの動きに追従する画像を実現するためのJavaScriptの具体的なコードを参考ま...

nginx は画像表示の遅さとダウンロードの不完全さの問題を解決します

前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...

MySQLループは数千万のデータを挿入する

1. テストテーブルを作成する テーブル `mysql_genarate` を作成します ( `id...

CSS スクロールバースタイル変更コード

CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...

Dockerボリューム削除操作

プルーンこのコマンドを使用するには、クライアントとデーモンの両方の API バージョンが少なくとも ...

Linux 上での MySQL データベースのインストールと Java プロジェクトの構成に関する詳細なグラフィック説明

1. MySQLデータベースをインストールする① ダウンロードして解凍し、/opt/softディレク...

Linux Bash スクリプトを使用してユーザーを識別する方法の例

多くの場合、bash スクリプト内またはスクリプト自体内で直接 sudo を使用してコマンドを実行す...

html の img src="" で js 関数または js 変数を呼び出して、画像パスを動的に指定します。

この問題に関して、オンライン リソースをたくさん見つけました。ここにいくつかの方法を示します。コード...