Dockerの構成入門
で、私はあなたがMernアプリをDockerizeできる方法を示した.プロセスは3つのコンテナを構成し、それらを開始するために3つの異なるコマンドを使用する必要があります.そして、あなたが覚えているならば、コマンド自体も非常に長くありました.あなたが仕事を始めたいたびにあなたがそれをしなければならないならば、これのすべては非常に厄介になります.
これは、ドッカーの構成が画像に入っているところです.
非常に簡単な用語でそれを置くには、私たちは起動し、目的の方法ですべての必要なコンテナを停止する2つの簡単なコマンドを提供します.存在するコマンド
Dockerがどのような構成をしているのかを考えてみましょう.私が前のポストで話したものに関して構築しています、それで、あなたがそれをチェックしなかったならば、私はあなたがすることを非常に提案します.
それで、最初に私たちの最終的なファイルがどのように見えるかについてあなたに教えさせてください、そして、私は詳細に説明することに行きます.Dockerを構成するファイルは以前に書いたDockerFilesの代用ではないことに注意してください.我々は、我々のイメージを造るために、彼らを絶対必要としています.このDockerのファイルを書いている間、フォルダ構造が次のようになっていると仮定します.
我々が指定する非常に最初のものは、我々が使用したいDocker構成のバージョンです.これは私たちのアプリのバージョンとは関係ないことを覚えておいてください.
次にサービスを指定します.すべてのサービスは同じインデントレベルで指定されます.
サービスの名前を指定して、その他の詳細を開始します.
サービスがどこか他から得ているイメージに基づいているならば、我々がここからMongoDBイメージを得るようにDocker Hub , それから、我々は
その後、我々は
次に、
以前にしたようにコンテナを起動している間に環境変数を渡す代わりに、ファイル内で指定し、そのファイルの位置を
その後は、 フロントエンドでは、次の2つの追加キーも通知されます そして、サービスを指定した後に、我々のサービスのボリュームを指定している間、我々が使用したすべての命名されたボリュームをリストしなければなりません.これはDockerが機能するために必要なものです.これは名前付きボリュームに対してのみ行われなければならないことに注意してください. 私たちが最後にしたように、私たちがなぜどこにもDockerネットワークをここで指定しないか、または作成しなかったか疑問に思うかもしれません.Dockerを使用するときには、Dockerは自動的にコンテクストファイルで指定されたサービスに対して新しい環境を作成し、それらのサービスをコンテナに追加します.が存在する そして、Vilは引きます!あなたが初めてDocker Composeを使用しているならば、これは理解するのに多くのかもしれません.私は、あなたがよりよくDocker作曲を使うことを理解するために、これをもう一度読んで、もう一度試みることを提案します.私は、あなたがこれから役に立つ何かを学ぶことができたことを望みます.
読書ありがとう!
あなたが私のためのフィードバックを持っているかどうかだけで私と接続するために自由に感じて話をしたい.喜んでお手伝いしましょう!ディー
編集( 02/01/2021 )
一連の結論
これは、このシリーズの最終的なポストです.私は、ポストを読む時間を取り出した誰にでも感謝します.私はあなたのすべてがあなたを助けることができる何かを学んだことを願っています.これは、私が積極的に技術的なブログを書き始めて、私は非常に私が得た応答に感謝しています.私は、今度はKubernetesで、もう一つのシリーズを始めています.この動画はお気に入りから削除されています.もう一度ありがとう.」
これは、ドッカーの構成が画像に入っているところです.
非常に簡単な用語でそれを置くには、私たちは起動し、目的の方法ですべての必要なコンテナを停止する2つの簡単なコマンドを提供します.存在するコマンド
docker-compose up
and docker-compose down
それぞれ.これとは別に、我々はdocker-compose.yaml
実行したいコマンドに関連する命令を持つファイル.Dockerがどのような構成をしているのかを考えてみましょう.私が前のポストで話したものに関して構築しています、それで、あなたがそれをチェックしなかったならば、私はあなたがすることを非常に提案します.
それで、最初に私たちの最終的なファイルがどのように見えるかについてあなたに教えさせてください、そして、私は詳細に説明することに行きます.Dockerを構成するファイルは以前に書いたDockerFilesの代用ではないことに注意してください.我々は、我々のイメージを造るために、彼らを絶対必要としています.このDockerのファイルを書いている間、フォルダ構造が次のようになっていると仮定します.
├── frontend
│ ├── Dockerfile
│ └── otherStuff
├── backend
│ ├── Dockerfile
│ └── otherStuff
├── env
│ ├── backend.env
│ └── mongo.env
└── docker-compose.yaml
それならばdocker-compose.yaml
ファイルは以下のようになります:version: '3.8'
services:
mongodb:
image: 'mongo'
volumes:
- data:/data/db
env_file:
- ./env/mongo.env
backend:
build: ./backend
ports:
- '80:80'
volumes:
- ./backend:/app
- /app/node_modules
env_file:
- ./env/backend.env
depends_on:
- mongodb
frontend:
build: ./frontend
ports:
- '3000:3000'
volumes:
- ./frontend/src:/app/src
stdin_open: true
tty: true
depends_on:
- backend
volumes:
data:
これを説明する前に、DockerFilesがどのように見ているか見てみてください.そうでなければ、何かを理解できないかもしれません.これで始めましょう.次にサービスを指定します.すべてのサービスは同じインデントレベルで指定されます.
Indentation does matter in
yaml
files so do take care of that
サービスがどこか他から得ているイメージに基づいているならば、我々がここからMongoDBイメージを得るようにDocker Hub , それから、我々は
image
キー使用build
そして、ビルドしたいDockerfileが存在するフォルダの場所を指定します.We specify the path to the folder containing the dockerfile and not the path to the dockefile itself.
その後、我々は
ports
オープンしたい投稿を指定するキー.これは、コンテナから端末から起動するのと同じように行われます.In the case of MongoDB, we don't need a port since the backend will interact with it via the docker network.
volumes
以前使用したのと同じ構文を使用します.以前にしたようにコンテナを起動している間に環境変数を渡す代わりに、ファイル内で指定し、そのファイルの位置を
env_file
キー.In the case of the React frontend we don't need any environment variables.
depends_on
基本的に、Deckerで指定されたコンテナーがアップデートして、我々が現在のものを始める前に実行することをDockerに話します.tty
and stdin_open
. フロントエンドコンテナーを対話モードで実行したいので、これらを指定します.これらは基本的に-it
フロントエンドを個別に起動している間に以前使用したフラグ.networks
しかしながら、いくつかのネットワークを指定したいなら、コンテナは一部であるべきです.読書ありがとう!
あなたが私のためのフィードバックを持っているかどうかだけで私と接続するために自由に感じて話をしたい.喜んでお手伝いしましょう!ディー
編集( 02/01/2021 )
一連の結論
これは、このシリーズの最終的なポストです.私は、ポストを読む時間を取り出した誰にでも感謝します.私はあなたのすべてがあなたを助けることができる何かを学んだことを願っています.これは、私が積極的に技術的なブログを書き始めて、私は非常に私が得た応答に感謝しています.私は、今度はKubernetesで、もう一つのシリーズを始めています.この動画はお気に入りから削除されています.もう一度ありがとう.」
Reference
この問題について(Dockerの構成入門), 我々は、より多くの情報をここで見つけました https://dev.to/rinkiyakedad/introduction-to-docker-compose-11ofテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol