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

推薦する

MySQL でのデータベース間クエリの例

序文MySQL では、クロスデータベース クエリは主に 2 つの状況に分けられます。1 つは同じサー...

MySQL バイナリログデータ復旧: 誤ってデータベースを削除した場合の詳細な説明

MySQL Binログデータの回復: 誤ってデータベースを削除した場合前書き: テスト マシンで誤っ...

VMware Workstationはデバイス/資格情報ガードと互換性がありません

仮想マシンをインストールするときに、「VMware ワークステーションはデバイス/資格情報ガードと互...

js データ型とその判定方法の例

js データ型基本データ型: 数値、文字列、ブール値、未定義、null、シンボル、参照データ型: オ...

mysql 5.7.11 winx64 初期パスワード変更

公式サイトからMySQL-5.7.11-winx64の圧縮版をダウンロード。インストール後、パスワー...

プロジェクトに必須の 8 つの JavaScript コード スニペット

目次1. ファイル拡張子を取得する2. コンテンツをクリップボードにコピーする3. スリープ時間は何...

Meituan DBデータをデータウェアハウスに同期するアーキテクチャと実践

背景データ ウェアハウス モデリングでは、何ら処理されていない元のビジネス レイヤー データは OD...

Linux カーネル デバイス ドライバーのメモリ管理に関する注意事項

/************************ * Linux メモリ管理 *********...

Reactの簡単な紹介

目次1. CDNの紹介1.1 react (最初にインポート) 1.2 react-dom(後ほど紹...

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

Dockerで最もよく使われるイメージコマンドとコンテナコマンドの詳細な説明

この記事では、Docker の使用で最もよく使用されるイメージ コマンドとコンテナ コマンドを一覧表...

Nginx を使用してクロスドメイン Vue 開発環境を処理する方法

1. 需要正しい Cookie 配信と SSO テストを確実に実行できるように、ローカル テスト ド...

MySQL の完全バックアップ中に特定のライブラリを除外する方法

MySQLの完全バックアップを実行するときは、--all-databaseパラメータを使用します。例...

Ubuntu の MySQL のパラメータ ファイル my.cnf の詳細な分析

序文MySQL に関する私の理解に基づくと、パフォーマンスの最適化作業やマスター スレーブ レプリケ...