ホームページ テクノロジー周辺機器 IT業界 DockerとDockerの機能的な深さは構成されています

DockerとDockerの機能的な深さは構成されています

Feb 08, 2025 am 09:06 AM

The Functional Depth of Docker and Docker Compose

Docker ComposeおよびVultr Containerレジストリを使用したマルチコンテナーフラスコアプリケーションをビルドDocker Composeを使用すると、ユーザーは単一の構成ファイルを使用してマルチコンテナーアプリケーションを実行および定義できます。複数のコンテナのセットアップと管理プロセスを簡素化し、アプリケーションの開発、テスト、展開が容易になります。この記事では、2つのコンテナを備えたフラスコアプリケーションを作成し、Vultr Container Registry(VCR)を使用してアプリケーションのDocker画像を管理し、Dockerのマルチコンテナー機能を使用して複数のコンテナを管理するようにします。

サンプルアプリケーションの作成

次の手順では、サンプルアプリケーションを作成するように導きます。

Vultr Customer Portalを介してDocker Marketアプリケーションを使用して、Vultr Computeインスタンスを展開します。
  1. SSHを使用して、非ルートSUDOユーザーを使用してサーバーに安全にアクセスします。
  2. サーバーを更新します。
  3. 新しいプロジェクトディレクトリを作成して、入力します:
  4. mkdir flask-redis-example
    cd flask-redis-example
  5. という名前の新しいファイルを作成します

    app.py

    nano app.py
    次のコードを追加します:
  6. ファイルを保存して終了します。このフラスココードは、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への着信接続を許可し、ファイアウォールをリロードします:
  7. sudo ufw allow 5000
    sudo ufw reload
  8. という名前の新しいファイルを作成します

    requirements.txt

    nano requirements.txt
    次のパッケージを追加します:
  9. ファイルを保存して閉じます。

    <code>flask
    redis</code>

    ディレクトリに別のディレクトリを作成して入力してください:
  10. flask-redis-example

     mkdir static
     cd static
  11. という名前の新しいファイルを作成します
  12. styles.css

    次のコードを追加します:
     nano styles.css
  13. ファイルを保存して終了します。

     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;
     }

    ディレクトリに別のディレクトリを作成して入力してください:

  14. flask-redis-example

     mkdir templates
     cd templates
    という名前の新しいファイルを作成します
  15. index.html次のコードを追加します:

     nano index.html
  16. ファイルを保存して終了します。
  17.  <!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を使用

  18. このセクションでは、Vultr Container Registryを作成し、Docker画像をレジストリにアップロードし、Docker ComposeファイルをセットアップしてFlaskおよびRedisデータベースのサービスをセットアップします。

バルトコンテナレジストリを展開します。

  1. ディレクトリでDockerマニフェストを作成します:

  2. 次の構成を追加します:flask-redis-example

    nano Dockerfile.flask
    ファイルを保存して終了します。
  3. 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"]

  4. バルトコンテナレジストリへのログイン:

    docker build -t flask-app .
    バルトコンテナレジストリの概要セクションに記載されている
  5. を置き換えてください。

  6. タグDocker画像:

    mkdir flask-redis-example
    cd flask-redis-example
  7. 鏡をバルトコンテナレジストリに吐き出す:

    nano app.py

    docker画像を押した後、Vultr DashboardのVultr Containerレジストリの「リポジトリ」セクションに画像が存在することを確認します。

  8. 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つのサービスwebredisを定義します。 webサービスは、現在のディレクトリ(。)からフラスコのアプリケーションを構築し、コンテナのポート5000をホストのポート5000にマッピングします。また、webサービスがredisサービスに依存することも指定しています。 redisこのサービスは、Docker Hubの公式Redis Dockerイメージを使用しています。

  9. build dockerはファイルを構成します:

    sudo ufw allow 5000
    sudo ufw reload

    ビルドプロセスが完了したら、http://:5000のフラスコアプリケーションにアクセスしてください。ウェブサイトを複数回更新してみて、ページ訪問のカウントが増加するかどうかを観察してください。

バルトコンテナレジストリのその他の使用

  • dockerを使用したVultr Containerレジストリ
  • kubernetesを備えたバルトコンテナレジストリ
  • vllmコンテナ画像をビルド
  • llama.cppコンテナ画像をビルドします
  • Pytorch Container Imageをビルドします

ベストプラクティス

    kep
  • ファイルはよく整理されており、十分に文書化されています。 docker-compose.yaml
  • ホストディレクトリにバインディングする代わりに、名前付きボリュームを使用してデータを永続化します。
  • 環境変数を使用して、パスワードやAPIキーなどの機密データを保存します。
  • コンテナを管理するには、
  • docker-compose updocker-compose downなどのDocker Composeの組み込みコマンドを使用します。 docker-compose ps

結論 この記事では、2つのコンテナを備えたフラスコアプリケーションを作成し、Vultr Containerレジストリを使用してアプリケーションのDocker画像を管理し、Dockerのマルチコンテナー機能を利用して複数のコンテナを管理しました。

この記事はVultrが後援しています。 Vultrは、世界最大のプライベートクラウドコンピューティングプラットフォームです。開発者の中でお気に入りのVultrは、185か国で150万人以上の顧客に柔軟でスケーラブルなグローバルクラウドコンピューティング、クラウドGPU、ベアメタル、クラウドストレージソリューションを提供しています。 Vultrの詳細

以上がDockerとDockerの機能的な深さは構成されていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Red Hatは開発者にRhel&ndashへの無料アクセスを提供しています。ここに&rsquo;あなたが知る必要があること Red Hatは開発者にRhel&ndashへの無料アクセスを提供しています。ここに&rsquo;あなたが知る必要があること Jul 13, 2025 am 12:49 AM

Red Hatは、開発者プログラムに簡単にアクセスできるように設計された新しいセルフサービスプラットフォームを導入しました。RedHatEnterprise Linux for Business Developers Initiativeは、開発チームの構築、テスト、展開を支援することを目的としています。

Atlassianは、AIがソフトウェア開発者のために「予期しないパラドックス」を作成したと言います&ndash;彼らは週に10時間以上節約していますが、彼らはまだ過労していて、同等の時間を失っています Atlassianは、AIがソフトウェア開発者のために「予期しないパラドックス」を作成したと言います&ndash;彼らは週に10時間以上節約していますが、彼らはまだ過労していて、同等の時間を失っています Jul 14, 2025 am 01:28 AM

ソフトウェア開発者は、AIツールを通じて毎週1日以上の仕事を節約していますが、新しい調査によると、他の重要な分野で時間を失っています。

ランサムウェアブームは、&ndashを許す兆候を示していません。そして、これらのグループは最も混乱を引き起こしています ランサムウェアブームは、&ndashを許す兆候を示していません。そして、これらのグループは最も混乱を引き起こしています Jul 16, 2025 am 01:38 AM

今年の最初の6か月で、ランサムウェア攻撃は劇的に急増し、米国企業、中小企業(SMB)、および製造会社が特に影響を受けます。

MSPは燃え尽きており、ツールが広がり、複雑さが増しているため、過労しています。しかし、地平線には光があります MSPは燃え尽きており、ツールが広がり、複雑さが増しているため、過労しています。しかし、地平線には光があります Jul 21, 2025 am 12:04 AM

MSPは2025年に幅広い困難に遭遇していますが、回復力があり、前進し続けます。これは、Auvikの2025年のITトレンドレポートからの重要なポイントです。

エンジニアの大半はセキュリティコントロールをバイパスして仕事をします。ゼロの信頼の野望が満たされていないため エンジニアの大半はセキュリティコントロールをバイパスして仕事をします。ゼロの信頼の野望が満たされていないため Jul 25, 2025 am 02:31 AM

驚異的な数のエンジニアは、単に毎日のタスクを実行するためにセキュリティプロトコルを回避しています。多くの人は、会社を終了した後でもアクセスを保持し続けています。

Extrahopは、シンガポールの拡張により、APACの勢いに基づいています Extrahopは、シンガポールの拡張により、APACの勢いに基づいています Jul 16, 2025 am 12:46 AM

Extrahopはシンガポールへの大幅な拡大を発表しました。APAC地域全体でネットワーク検出と対応(NDR)プラットフォームの需要の増加に対処することを目指しています。

Ingram Micro Cyber Attack:ITディストリビューターは、システムの修復が進行中であると言います&ndash;しかし、一部の顧客は正常に戻るのを待たなければならないかもしれません Ingram Micro Cyber Attack:ITディストリビューターは、システムの修復が進行中であると言います&ndash;しかし、一部の顧客は正常に戻るのを待たなければならないかもしれません Jul 14, 2025 am 12:02 AM

Ingram Microは、広範なシステムの混乱を引き起こした主要なサイバー攻撃に続いてゆっくりと安定性を取り戻しています。最近のアップデートでは、システムを復元し、違反後に強化されたセキュリティ対策を導入していると述べました。

aiは、カリフォルニアでの秘密の会議で世界のトップ数学者30人を中断しました aiは、カリフォルニアでの秘密の会議で世界のトップ数学者30人を中断しました Jul 17, 2025 am 01:26 AM

5月中旬の週末に、数学者の排他的な集まりが行われました。数学の最も著名な心の30人がカリフォルニア州バークレーに旅行しました。

See all articles