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 のセットアップと切り替えに関するいくつかのエラー ログの概要

推薦する

ウェブサイトの画像にグレー効果を加える3つの方法

私はグレースケールの画像の方が芸術的に見えると思うので、いつもグレースケールの画像を好んで使っていま...

MySQL でテーブルを作成するときの NULL と NOT NULL の使用方法の詳細な説明

MySQL の仕様によっては、テーブル作成仕様にすべてのフィールドが空であってはならないという要件を...

Node.js での SerialPort モジュールの使用

目次目的モジュールのインストール基本的な使い方ポートをスキャンする開いているポートデータの送信データ...

オーディオマニアにアピールするオーディオビジュアルLinuxディストリビューション

私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...

Linuxグループの基礎知識ポイントまとめ

1. Linuxグループの基本紹介Linux では、すべてのユーザーはグループに所属する必要があり、...

HTMLの基本構造を包括的に理解する

HTML入門ハイパーテキスト マークアップ言語: ハイパーテキスト マークアップ言語ハイパーテキスト...

MySQL で複数の主キーが定義されているエラーの解決方法

主キーを作成するには 2 つの方法があります。 テーブルテーブル名を作成( フィールド名タイプ、 フ...

el-table ヘッダーでテキストを折り返す 3 つの方法の詳細な説明

目次問題の説明レンダリング3種類のコード要約する問題の説明通常、表のヘッダーは折り返されませんが、ビ...

JavaScript における 3 つの for ループ ステートメントの使用の概要 (for、for...in、for...of)

序文JS に触れるすべての開発者は、必然的に for ループを扱うことになります。結局のところ、fo...

Mac ノードの削除と再インストールのケーススタディ

Macノードの削除と再インストール消去 ノード -v sudo npm アンインストール npm -...

Vue で video.js を使用して m3u8 形式のビデオを再生する方法

目次1. インストール2. videojsの紹介3. コンポーネントでのテストと使用1. 基本的な自...

JavaScript のマクロタスクとマイクロタスクの詳細

目次1. マイクロタスクとは何ですか? 2. マクロタスクとは何ですか? 3. 事例3.1 結論4....

MySQL 5.7.18 インストールチュートリアルと問題の概要

MySQL 5.7.18 のインストールと問題の概要。今日、新しい MySQL サーバーを導入しまし...

Web フロントエンドのパフォーマンス最適化の詳細説明: リソースのマージと圧縮

2つの目的のためのリソースの結合と圧縮httpリクエストの数を減らす要求されたリソースのサイズを縮小...