Docker Component|複数のコンテナの管理


Docker Compose
今回の位置づけは、リバースショットについてです.
メンターは実際のサービスで複数のコンテナを移動するからです.
docker作曲の勉強をお勧めします!👍
合成バー
Docker合成
compositeファイルを使用して複数のコンテナを簡単に管理できる機能です.
以下の実習内容は、ダックの正式な書類に従って実習を行った後に作成された.
installation
まずDockerデスクトップをインストールしました.
この場合、docker-composeがインストールされます.
ターミナルにあります.
docker-compose
入力時に下記の結果に設定されていることを確認できます.

app.py
以下はredisとflaskを用いて簡単なWebページを作成します.
get hit count関数を使用してページを更新するたびに
値を1つ増やして返します.
最も基本的なパス~/アクセスを使用すると、hello関数は正常に動作します.
get hit countから受信した値
Hello Wordl!~~ ~times. 真ん中に置いてみんなに見せる

requirements.txt
その後、redisとflaskはdocker内に個別にインストールする必要があるので、記入する必要があります.
flask
redis
Dockerfile
今回はDockerfileを書きます.
# syntax=docker/dockerfile:1
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask","run"]
  • Python 3.7画像から始まります.
  • 作業ディレクトリを/コードに設定します.
  • フラスコに環境を設定します.
  • gccなどの他の依存項目をインストールします.
  • requirements.txtをコピーしてインストールします.
  • EXPOSEにて5000番ポートを公開いたします.
  • 現在のディレクトリはworkdirです.ほうしゃ
  • は最後にflaskrunでwebを実行します.
  • docker-compose.yml
    dockerのファイルを作成します.
    version: "3.9"
    services:
      web:
        build: .
        ports:
          - "8000:5000"
      redis:
        image: "redis:alpine"
    Build and run my app
    ターミナルで
    docker-compose up
    実行
    次にlocalhost:8000を確認します.

    リフレッシュすると、数値が増加し続けることを確認できます.
    降りるとき.
    docker-compose down
    入力します.
    そして画像をチェック
    複数の画像が生成されていることがわかります.
    docker images

    Edit the compose file
    今回はbind mountを追加します.
    docker-compose.ymlにボリュームと環境を追加します.
    version: "3.9"
    services:
      web:
        build: .
        ports:
          - "8000:5000"
        volumes:
          - .:/code
        environment:
          FLASK_ENV: development
      redis:
        image: "redis:alpine"
  • volumensは、現在のプロジェクトディレクトリをhostの/コード内コンテナにマウントします.
    これにより、コードを変更して画像を再構築する必要がなくなります.
  • Re-build and run the app
    上で作ったように、改めて
    docker-compose up
    入力します.
    更新が成功したことを確認するために.
    app.pyのhello関数の戻り部分を以下に示します.
    return 'Hello from Docker! I have been seen {} times.\n'.format(count)

    リノベーションなしで変更が確認できたのは良かったです.
    バックグラウンドの実行
    バックグラウンドで回りたいなら、dflagを追加します.
    docker-compose up -d
    止まった時.
    docker-compose stop
    ボリュームデータを削除する場合はdownを使用します.
    docker-compose down --volumes
    入力します.