Docker を使用して Django プロジェクトをデプロイする方法の例

Docker を使用して Django プロジェクトをデプロイする方法の例

また、Dockerを使用してDjangoプロジェクトをデプロイするのも非常に簡単です。とても良いです。以下で共有してください。

環境

デフォルトでは、docker環境がインストールされています

Djangoプロジェクトの一般的な構造

(p3s) [root@opsweb]# ツリー opsweb
オプスウェブ
├── アプリ
├── ログ
├── manage.py
├── メディア
├──オプスウェブ
├── README.md
├── 要件.txt
└── 静的

Dockerfileの作成

ここでは、Python のバージョンは Docker が公式に提供しているものを指定します。

「0.0.0.0:8000」ここでコンテナのポート8000​​を開きます。FROM python:3.6
mkdir -p /usr/src/app を実行します。
pip.conf をコピー /root/.pip/pip.conf
opsweb /usr/src/app/ をコピーします
コピー run_web.sh /usr/src/app/
pip install -r /usr/src/app/requirements.txt を実行します。
ワークディレクトリ /usr/src/app
コマンド [ "sh", "./run_web.sh"]

pipファイルの書き込み

ここでは、Alibaba Cloudソースを使用してミラーpipをより速くインストールする方法を説明します。

[グローバル]
インデックス URL = http://mirrors.aliyun.com/pypi/simple/
[インストール]
信頼できるホスト = mirrors.aliyun.com

完全なディレクトリ構造

[ルート@opsweb]# ls
Dockerファイル opsweb pip.conf run_web.sh

イメージをビルドする

ビルドは -t ops:v0.1 です。
ビルド コンテキストを Docker デーモンに送信しています 4.849 MB
ステップ1: python:3.6から
 ---> 3e4c2972dc8d
ステップ2: mkdir -p /usr/src/appを実行します
 ---> 8ddd929f5c18 で実行中
 ---> 89dc0a1ffdf0
中間コンテナ 8ddd929f5c18 を削除しています
ステップ3: pip.confをコピーする /root/.pip/pip.conf
 ---> 5a4a165fed90
中間コンテナ 37f3fdc7e5d2 を削除しています
ステップ4: opsweb /usr/src/app/opsweb をコピーする
 ---> f602e72ffd4c
中間コンテナ 8d4bb616916d を削除しています
ステップ 5: opsweb/requirements.txt を /usr/src/app/ にコピーします。
 ---> 6fe11a6fcbe0
中間コンテナ faeadee32fed を削除しています
ステップ6: pip install -r /usr/src/app/requirements.txtを実行します。
 ---> cc09c17d53da
中間コンテナ d7b45bec6993 を削除しています
ステップ7: WORKDIR /usr/src/app
 ---> c22dfdddbe81 で実行中
 ---> c5c944b6df45
中間コンテナ c22dfdddbe81 を削除しています
ステップ 8: CMD python ./manage.py runserver 0.0.0.0:8000
 ---> 29d5f0f53f6e で実行中
 ---> 10d37173fd13
中間コンテナ 29d5f0f53f6e を削除しています
10d37173fd13 の構築に成功しました

結論

このようにしてイメージが構築され、docker run -p8000:8000 ops:v0.1 -d で直接起動したり、k8s にデプロイしたりできます。これも非常に簡単なので、ここでは詳細には触れません。

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

以下もご興味があるかもしれません:
  • Django ログ設定を日付順にロールする方法
  • クロスドメインリクエストの問題に対する Django のソリューションの詳細な説明
  • Django でスケジュールされたタスクを設定する方法
  • Djangoを紹介します
  • Djangoを使用してMysqlデータベースに接続する手順
  • Django フレームワーク テンプレートの紹介
  • Djangoは、ログインとアクセス制御を制御するミドルウェア方式を実装しています。
  • k8sを使用してDjangoプロジェクトをデプロイする手順
  • Django データベースのデータ関係: 1 対 1、1 対多、多対多
  • Django 2.0 拡張ユーザーフィールドの例

<<:  Linux オペレーティング システムでよく使用される MySQL コマンドの概要

>>:  Vue.js でフォントを読み込む正しい方法

推薦する

docker によってプルされたイメージがどこに保存されるかの詳細な説明

docker によってプルされたコマンドは、デフォルトでは /var/lib/docker/ フォル...

MySQLで大きなテーブルをエレガントに削除する方法について簡単に説明します

目次1. 切り捨て操作1.1 MySQL truncate はどのような操作を実行しますか? 1.2...

IIS 7.5はURL書き換えモジュールを使用してWebページのリダイレクトを実現します。

Apache では構成ファイルで Web ページまたは Web サイトの書き換えを簡単に設定できる...

CSS3 を使用した SVG パス ストロークのアニメーション化入門チュートリアル

JavaScript に依存せず、純粋な CSS を使用してsvgストローク描画アニメーション効果と...

XHTML 入門チュートリアル: テキストの書式設定と特殊文字

<br />このセクションでは、XHTML でテキストの書式設定と特殊文字を実装する方法...

Linux で NFS ファイル共有サーバーを構築するための詳細な手順

Linux が NFS サーバーを構築異なるオペレーティング システム間でデータを共有するために、通...

異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法

新しい公式サイトはオンラインですが、携帯電話で新しい公式サイトにアクセスすると、エクスペリエンスが非...

Linux のタイムドログ削除を実装する簡単な方法

導入Linux は、ファイル、ログ、電子メール、バックアップなどを自動的に生成できるシステムです。ハ...

MySQL 8.0.15 で MGR シングル マスターと複数スレーブを構成する方法

1. はじめにMySQL グループ レプリケーション (略して MGR) は文字通り MySQL グ...

MacでDockerがホストマシンにpingできない問題を解決する

解決Docker for Macに付属するLinux仮想マシン(軽量ですが、ソケットファイルを使用し...

html-cssタグのスタイル設定が機能しない2つの理由

1 セミコロン「;」のない CSS スタイル2 タグが閉じられておらず、「>」がありません...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

5つのクールで実用的なHTMLタグと属性の紹介

実はこれもクリックベイトのタイトルであり、「派手」とは言えません。ただ私が無知で、こうしたラベルを見...

MySQL はどのようにしてマスターとスレーブの一貫性を確保するのでしょうか?

目次MySQLマスタースレーブの基本原理3つのbinlog形式の比較混合形式のバイナリログが存在する...

Dockerデーモンのセキュリティ設定項目の詳細な説明

目次1. テスト環境1.1 CentOS 7をインストールする1.2 Docker CE 19.03...