ドッカー作成 LinuxでマルチコンテナDockerアプリケーションを定義して実行するためのツールです。 Composeでは、YAMLファイルを使用してアプリケーションのサービスを構成します。次に、1つのコマンドで構成からすべてのサービスを作成して開始します。これは、Dockerの作成がどのように機能するかを示す簡単な図解です。

Dockerの構成のしくみ-グラフィカルな図
DockerComposeは基本的に3ステップのプロセスです:
- まず、 Dockerfileを使用してアプリケーション環境を定義する必要があります。 そのため、再利用できます。
- 次に、アプリを構成するサービスを docker-compose.ymlで定義します そのため、分離された環境で一緒に実行できます。
- 最後に、 docker-compose upを実行します コマンドと作成により、アプリケーション全体が起動して実行されます。
LinuxでのDockerComposeの使用を開始する
DockerComposeは2つの方法でインストールできます。インストール手順は、「DockerComposeのインストール」セクションにあります。 次のリンクで。
- UbuntuにDockerをインストールする方法
- CentOSにDockerをインストールする方法
インストール後、コマンドを使用してDockercomposeのバージョンを確認します。
# docker-compose -version
または、
# docker-compose -v
または、
# docker-compose --version

dockercomposeバージョンを確認してください
ヘルプが必要な場合は、次を実行してください:
# docker-compose -help
このコマンドは、dockercomposeが実行できるコマンドを一覧表示します。

dockercomposeヘルプ
ここで、例として単純なdockercomposeファイルを取り上げましょう。これが私の作成ファイルの内容です。

ドッカー作成ファイルのサンプル
上記のdocker作成ファイルは、作成ファイル内の基本的なコンテンツを理解するための最低限のファイルです。
次のコマンドを使用して、ファイルの有効性を確認できます:
# docker-compose config

dockercomposeファイルの有効性を確認してください
docker composeファイル内で間違ったバージョンを指定すると、エラーメッセージが表示されます。

Docker作成ファイルのエラーメッセージ
次に、コマンドを使用して作成ファイルを実行しましょう:
# docker-compose up -d
1つのコマンドですべてのサービスを開始します。

dockercomposeを実行する
作成ファイルによって作成された実行中のコンテナーを一覧表示するには、次のコマンドを実行します。
# docker-compose ps

実行中のDockerコンテナを一覧表示する
次のコマンドを使用して、いつでもアプリケーションを停止できます。
# docker-compose down

Dockerコンテナを停止する
nginxに別のポートを割り当てることもできます(例:8181)。
これを行うには、次の画像に示すように、作成ファイルでポートを定義するだけです。

ポートnginxコンテナを定義する
これで、nginxはポート8181に公開されます。コンテナを起動して、Nginxが8181ポートで実行されているかどうかを確認しましょう。

nginxコンテナを起動します
ブラウザを開き、8181ポートで実行されているかどうかを確認します。

Webブラウザでnginxコンテナをテストする
サービスを拡張する場合は、次のコマンドを使用して拡張できます:
# docker-compose up -d --scale database=3

dockercomposeを使用したサービスのスケーリング
実行中のサービスを表示するには、次を実行します:
# docker-compose top

dockercomposeを使用して実行中のサービスを表示する
停止するには、開始します。サービス全体を一度に再起動すると、コマンドは次のようになります。
# docker-compose stop
# docker-compose start
# docker-compose restart
コマンドを使用してサービスのログを表示できます:
# docker-compose logs

サービスのログを表示する
docker-composeでのネットワーキング
Docker Composeは、デフォルトでアプリに単一のネットワークをセットアップします。各コンテナはデフォルトネットワークに参加し、コンテナはそのデフォルトネットワークで通信できるようになります。
ただし、デフォルトのネットワークが必要ない場合は、composeを使用して新しいネットワークを作成できます。
このガイドでは、次の3つのファイルを使用します。
- Dockerfile
- docker-compose.yml
- server.py
Dockerfileの内容は次のとおりです。

dockerfileの内容
docker-compose.ymlの内容:

Docker作成ファイルの内容
server.pyの内容:

アプリケーションファイルの内容
次に、コマンドを使用してイメージを作成します:
# docker-compose build
ビルドが完了すると、次の出力が表示されます。

Dockerイメージを作成する
ご覧のとおり、イメージは正常にビルドされています。コマンドを使用して確認できます:
# docker images

Dockerイメージを一覧表示する
上記の出力にあるように、 image1という名前のDockerイメージ 作成されます。
次に、作成ファイルを実行します:
# docker-compose up -d

dockercomposeファイルを実行する
次のコマンドを使用して、新しいネットワークが作成されているかどうかを確認します。
# docker network ls

Dockerネットワークを確認する
上のスクリーンショットから、 dc_network_my-networkという名前の新しいネットワークを確認できます。 作成されました。
「dockerps」コマンドを使用して、コンテナが実行されているかどうかを確認しましょう。
# docker ps

dockerpsコマンド出力
はい、コンテナは実行中です!
最後に、curlコマンドを使用してアプリケーションコードファイル(server.py)を実行します。
# curl localhost:15001
または、
# curl 10.26.35.244:15001

アプリケーション出力
出力を取得しています-ノード1からHelloWorld! これはserver.pyファイルに書き込まれます。それが機能することを意味します!
推奨される読み物:
- Dockerネットワークの概念の説明
- 例を使用してDockerボリュームを説明する
- 実行中のDockerコンテナを自動的に更新する方法
- ctop –Linuxコンテナ用のコマンドライン監視ツール
- Portainer –Dockerを管理する最も簡単な方法
- PiCluster –シンプルなWebベースのDocker管理アプリケーション
- Docker –ターミナルからDockerコンテナを管理する
作成者について:
Dhruv Tiwari は、自動化が大好きで、Linuxを大規模に操作し、システムがLinuxボックスにログインする必要がないほどスマートになる日の夢を見るDevOpsエンジニアです。ソースコードからコード展開、本番環境へのCI/CDの旅。