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

推薦する

Linux の 5 ステップ ビルド カーネル ツリー

目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...

MySQLテーブルにタイムスタンプを追加するいくつかの方法

シナリオ:テーブル内のデータは、同期ツールを使用して他のデータベースと同期する必要があり、増分同期に...

Vueのコンポーネントのprops属性について詳しく説明します

目次質問1: 小道具は具体的にどのように使用されますか?原理は何ですか?下を見る質問 2: 年齢に ...

Linuxでユーザーが所属するグループを変更する方法

Linuxでユーザーが所属するグループを変更する1. ユーザーのグループを設定する usermod ...

Confluence と jira-software を Docker にデプロイする方法

バージョン: セントロス==7.2 jdk==1.8 合流==6.15.4 jira-ソフトウェア=...

HTML/XHTML における img 画像タグの基本的な使用法の詳細な説明

画像タグは、Web ページに画像を表示するために使用されます。 HTML/XHTML 画像 <...

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...

CSSはクーポンスタイルを実装するために放射状グラデーションを使用します

この記事では、CSS で放射状グラデーションを使用して、次の図に示すクーポン スタイルの効果を実現す...

vue3 学習ノートにおける axios の使用の変更の概要

目次1. axioの基本的な使い方2. クロスドメインの問題を解決するには? 3. パッケージ4. ...

uniapp アプレットでウォーターフォール フロー レイアウトを実装するためのアイデアとコード

1. はじめに今、ウォーターフォールフローについて書くことは、古い内容の焼き直しと見なされますか?気...

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

VUEウォッチリスナーの基本的な使い方の詳しい説明

目次1. 次のコードはwatchの簡単な使用法です2. 即時監視3. ハンドラメソッド4. 深い属性...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...

一般的なSQL削除ステートメントの原則の違いを理解するだけです

この記事では主に、SQL 削除ステートメント DROP、TRUNCATE、および DELETE の違...

MySQL アーキテクチャのナレッジポイントの概要

1. データベースとデータベースインスタンスMySQL の研究では、データベースとデータベース イン...