Docker ComposeおよびVultr Containerレジストリを使用したマルチコンテナーフラスコアプリケーションをビルドDocker Composeを使用すると、ユーザーは単一の構成ファイルを使用してマルチコンテナーアプリケーションを実行および定義できます。複数のコンテナのセットアップと管理プロセスを簡素化し、アプリケーションの開発、テスト、展開が容易になります。この記事では、2つのコンテナを備えたフラスコアプリケーションを作成し、Vultr Container Registry(VCR)を使用してアプリケーションのDocker画像を管理し、Dockerのマルチコンテナー機能を使用して複数のコンテナを管理するようにします。
サンプルアプリケーションの作成次の手順では、サンプルアプリケーションを作成するように導きます。
Vultr Customer Portalを介してDocker Marketアプリケーションを使用して、Vultr Computeインスタンスを展開します。
SSHを使用して、非ルートSUDOユーザーを使用してサーバーに安全にアクセスします。
サーバーを更新します。
新しいプロジェクトディレクトリを作成して、入力します:
mkdir flask-redis-example cd flask-redis-example
app.py
nano app.py
ファイルを保存して終了します。このフラスココードは、Redisデータベースに接続し、ルートURLにアクセスするたびにカウンターを増加させます。
from flask import Flask, render_template import redis app = Flask(__name__) redis_client = redis.Redis(host='redis', port=6379) @app.route('/') def hello(): count = redis_client.incr('hits') return render_template('index.html', count=count) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
ポート5000への着信接続を許可し、ファイアウォールをリロードします:
sudo ufw allow 5000 sudo ufw reload
requirements.txt
nano requirements.txt
ファイルを保存して閉じます。
<code>flask redis</code>
ディレクトリに別のディレクトリを作成して入力してください:
flask-redis-example
mkdir static cd static
styles.css
nano styles.css
body { font-family: Arial, sans-serif; text-align: center; background-color: #f4f4f4; margin: 0; padding: 0; } h1 { color: #333; margin-top: 50px; } p { font-size: 18px; color: #666; }
ディレクトリに別のディレクトリを作成して入力してください:
flask-redis-example
mkdir templates cd templates
index.html
次のコードを追加します:
nano index.html
<!DOCTYPE html> <html> <head> <title>Flask App</title> <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}"> </head> <body> <h1>Hello, World!</h1> <p>I have been seen {{ count }} times.</p> </body> </html>
vultr container registryを使用
バルトコンテナレジストリを展開します。
次の構成を追加します:flask-redis-example
nano Dockerfile.flask
build docker image:
FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app.py . COPY static/ ./static/ COPY templates/ ./templates/ EXPOSE 5000 CMD ["python", "app.py"]
docker build -t flask-app .
を置き換えてください。
タグDocker画像:
mkdir flask-redis-example cd flask-redis-example
鏡をバルトコンテナレジストリに吐き出す:
nano app.py
docker画像を押した後、Vultr DashboardのVultr Containerレジストリの「リポジトリ」セクションに画像が存在することを確認します。
docker-compose.yaml
:
from flask import Flask, render_template import redis app = Flask(__name__) redis_client = redis.Redis(host='redis', port=6379) @app.route('/') def hello(): count = redis_client.incr('hits') return render_template('index.html', count=count) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
ファイルを保存して終了します。上記のYAML構成では、2つのサービスweb
とredis
を定義します。 web
サービスは、現在のディレクトリ(。)からフラスコのアプリケーションを構築し、コンテナのポート5000をホストのポート5000にマッピングします。また、web
サービスがredis
サービスに依存することも指定しています。 redis
このサービスは、Docker Hubの公式Redis Dockerイメージを使用しています。
build dockerはファイルを構成します:
sudo ufw allow 5000 sudo ufw reload
ビルドプロセスが完了したら、http://
バルトコンテナレジストリのその他の使用
ベストプラクティス
docker-compose.yaml
docker-compose up
、docker-compose down
などのDocker Composeの組み込みコマンドを使用します。 docker-compose ps
結論 この記事では、2つのコンテナを備えたフラスコアプリケーションを作成し、Vultr Containerレジストリを使用してアプリケーションのDocker画像を管理し、Dockerのマルチコンテナー機能を利用して複数のコンテナを管理しました。
この記事はVultrが後援しています。 Vultrは、世界最大のプライベートクラウドコンピューティングプラットフォームです。開発者の中でお気に入りのVultrは、185か国で150万人以上の顧客に柔軟でスケーラブルなグローバルクラウドコンピューティング、クラウドGPU、ベアメタル、クラウドストレージソリューションを提供しています。 Vultrの詳細以上がDockerとDockerの機能的な深さは構成されていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。