Ubuntu18.04にDockerComposeをインストールする方法

前書き

[ Docker](https://docs.docker.com/)は、Linuxアプリケーションをソフトウェアコンテナに自動的にデプロイするための優れたツールですが、その可能性を最大限に活用するには、アプリケーションの各コンポーネントが独自のものである必要があります別のコンテナで実行します。多数のコンポーネントを含む複雑なアプリケーションの場合、すべてのコンテナを調整して開始すると、通信とシャットダウンの処理がすぐに困難になる可能性があります。

Dockerコミュニティは、[Fig](http://www.fig.sh/)と呼ばれる一般的なソリューションを提案しました。これにより、単一のYAMLファイルを使用してすべてのDockerコンテナーと構成を調整できます。これは非常に人気があったため、DockerチームはFigソースに基づいて* Docker Compose *を作成することを決定しましたが、現在は非推奨です。 Docker Composeを使用すると、ユーザーは、コンテナー内のリンクとボリュームの開始、終了、設定など、Dockerコンテナーのプロセスを簡単に調整できます。

このチュートリアルでは、マルチコンテナアプリケーションの管理に役立つ最新バージョンのDockerComposeをインストールする方法を示します。

準備 ##

この記事を読むには、次のUbuntu18.04サーバーが必要です。

これらが整ったら、いつでもフォローアップできます。

**注:**前提条件はUbuntu 18.04にDockerをインストールするための手順を提供しますが、Dockerがインストールされている限り、この記事の dockerコマンドは他のオペレーティングシステムで実行できます。

ステップ1-DockerComposeをインストールする

Docker Composeは公式のUbuntuリポジトリからインストールできますが、最新バージョンよりもマイナーなバージョンがいくつかあるため、DockerのGitHubリポジトリからDockerComposeをインストールします。以下のコマンドは、「[バージョン」](https://github.com/docker/compose/releases)ページにあるコマンドとは少し異なります。この構文では、出力をリダイレクトする代わりに、 -oフラグを使用して最初に出力ファイルを指定することにより、sudoを使用するときにアクセス許可拒否エラーが発生するのを回避できます。

[現在のバージョン](https://github.com/docker/compose/releases)を確認し、必要に応じて次のコマンドで更新します。

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m`-o /usr/local/bin/docker-compose

次に、権限を設定します。

sudo chmod +x /usr/local/bin/docker-compose

次に、バージョンを確認して、インストールが成功したことを確認します。

docker-compose --version

これにより、インストールしたバージョンが出力されます。

docker-compose version 1.21.2, build a133471

Docker Composeをインストールしたので、「HelloWorld」の例を実行する準備が整いました。

**ステップ2-DockerCompose **でコンテナを実行する##

パブリックDockerレジストリDockerHubには、デモンストレーションとテスト用の* Hello World *イメージが含まれています。これは、DockerComposeでコンテナを実行するために必要な最小構成を示しています。単一のイメージのYAMLファイルを呼び出します。

まず、YAMLファイル用のディレクトリを作成し、そこに移動します。

mkdir hello-world
cd hello-world

次に、YAMLファイルを作成します。

nano docker-compose.yml

以下をファイルに入れ、ファイルを保存して、テキストエディターを終了します。

my-test:
 image: hello-world

YAMLファイルの最初の行は、コンテナー名の一部として使用されます。 2行目は、コンテナの作成に使用されるイメージを指定します。 docker-compose upコマンドを実行すると、指定した名前でローカルミラー hello-worldが検索されます。これで、ファイルを保存して終了します。

次の docker imagesコマンドを使用して、システム上の画像を手動で表示できます。

docker images

ローカルミラーがまったくない場合は、列見出しのみが表示されます。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

ここで、まだ 〜/ hello-worldディレクトリにいる間に、次のコマンドを実行します。

docker-compose up

コマンドを初めて実行するときに、ローカルイメージ hello-worldが指定されていない場合、DockerComposeはDockerHubパブリックリポジトリからコマンドを抽出します。

Pulling my-test(hello-world:latest)...
latest: Pulling from library/hello-world
c04b14da8d14: Downloading [==================================================>] c04b14da8d14: Extracting [==================================================>]  c04b14da8d14: Extracting [==================================================>]  c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
...

イメージをプルした後、 docker-composeはコンテナを作成し、[hello](https://github.com/docker-library/hello-world/blob/85fd7ab65e079b08019032479a3f306964a28f4d/hello-world/Dockerfile)プログラムをアタッチして実行し、インストールが機能しているように見えることを確認します。

...
Creating helloworld_my-test_1...
Attaching to helloworld_my-test_1
my-test_1 |
my-test_1 | Hello from Docker.
my-test_1 | This message shows that your installation appears to be working correctly.
my-test_1 |...

次に、実行した説明を出力します。

1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.3. The Docker daemon created a newcontainerfrom that image which runs the executable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

Dockerコンテナは、コマンドがアクティブな場合にのみ実行されるため、 helloの実行が終了すると、コンテナは停止します。したがって、アクティブなプロセスを見ると、列ヘッダーが表示されますが、 hello-worldは実行されていないため、コンテナーをリストしません。

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES

-aを使用してすべてのコンテナのフラグを表示すると、コンテナ情報を確認できます。アクティブなコンテナだけでなく、次のステップで使用します。

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
06069 fd5ca23        hello-world         "/hello"35 minutes ago      Exited(0)35 minutes ago                       drunk_payne

これにより、完了時にコンテナを削除するために必要な情報が表示されます。

手順3-ミラーを削除する(オプション)

不要なディスク容量を使用しないように、ローカルイメージを削除します。これを行うには、 docker rmコマンドを使用して、イメージを参照するすべてのコンテナーを削除してから、CONTAINERIDまたはNAMEを削除する必要があります。以下では、実行したばかりの docker ps-aコマンドでCONTAINERIDを使用します。必ずコンテナのIDを置き換えてください。

docker rm 06069fd5ca23

画像を参照しているすべてのコンテナが削除されたら、画像を削除できます。

docker rmi hello-world

結論として ##

これで、Docker Composeをインストールし、Hello Worldの例を実行してインストールをテストし、テストイメージとコンテナを削除しました。

Hello Worldの例ではインストールが確認されましたが、単純な構成では、Docker Composeの主な利点の1つ、つまりDockerコンテナーのグループを同時に追加および削除できることは示されませんでした。

その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。

参照:「Ubuntu18.04にDockerComposeをインストールする方法」

Recommended Posts

Ubuntu18.04にDockerComposeをインストールする方法
Ubuntu14.04にDockerを使用してPrometheusをインストールする方法
Ubuntu20.04にDockerをインストールして使用する方法
Ubuntu16.04にDockerをインストールして使用する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu20.04にAnacondaをインストールする方法
Ubuntu16.04にPrometheusをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にRをインストールする方法
Ubuntu16.04にMoodleをインストールする方法
Ubuntu14.04にSolr5.2.1をインストールする方法
Ubuntu16.04にTeamviewerをインストールする方法
Ubuntu20.04にMariaDBをインストールする方法
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にMonoをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu20.04にZoomをインストールする方法
Ubuntu16.04にNginxをインストールする方法
Ubuntu20.04にOpenCVをインストールする方法
Ubuntu20.04にSpotifyをインストールする方法
Ubuntu18.04にPostmanをインストールする方法
Ubuntu16.04にGo1.6をインストールする方法
Ubuntu18.04にGoをインストールする方法
Ubuntu14.04にMySQLをインストールする方法
Ubuntu20.04にPostgreSQLをインストールする方法
Ubuntu18.04にVLCをインストールする方法
Ubuntu20.04にTeamViewerをインストールする方法
Ubuntu20.04にWebminをインストールする方法
Ubuntuにdockerをインストールする
ubuntu18.04にDockerをインストールします
Ubuntu18にDockerをインストールする
RaspberryPiにUbuntuをインストールする方法