Debian10にDockerComposeをインストールする方法
序章
Docker は、ソフトウェアコンテナー内でのLinuxアプリケーションのデプロイを自動化するための優れたツールですが、その可能性を最大限に活用するには、アプリケーションの各コンポーネントを独自のコンテナーで実行する必要があります。 多くのコンポーネントを含む複雑なアプリケーションの場合、すべてのコンテナーを調整して、起動、通信、およびシャットダウンを一緒に行うと、すぐに扱いにくくなる可能性があります。
Dockerコミュニティは、 Fig と呼ばれる人気のあるソリューションを考案しました。これにより、単一のYAMLファイルを使用してすべてのDockerコンテナーと構成を調整できます。 これは非常に人気があったため、DockerチームはFigソースに基づいて DockerComposeを作成することを決定しました。これは現在非推奨です。 Docker Composeを使用すると、ユーザーは、コンテナー内のリンクとボリュームの起動、シャットダウン、セットアップなど、Dockerコンテナーのプロセスを調整できます。
このチュートリアルでは、最新バージョンのDocker Composeをインストールして、Debian10サーバー上のマルチコンテナアプリケーションの管理に役立てます。
前提条件
この記事をフォローするには、次のものが必要です。
- Debian10サーバーとsudo権限を持つroot以外のユーザー。 このDebian10チュートリアルを使用した初期サーバー設定では、これを設定する方法について説明しています。
- Dockerは、 Debian10にDockerをインストールして使用する方法のステップ1およびステップ2の手順に従ってインストールされます
注:前提条件には、Debian 10にDockerをインストールするための手順が記載されていますが、 docker
この記事のコマンドは、Dockerがインストールされている限り、他のオペレーティングシステムでも機能するはずです。
ステップ1—DockerComposeをインストールする
Docker Composeは公式のDebianリポジトリからインストールできますが、最新リリースの背後にあるいくつかのマイナーバージョンであるため、このチュートリアルでは、DockerのGitHubリポジトリからインストールします。 次のコマンドは、リリースページにあるコマンドとは少し異なります。 を使用して -o
出力をリダイレクトするのではなく、最初に出力ファイルを指定するフラグ。この構文は、使用時に発生する「permissiondenied」エラーの発生を回避します。 sudo
.
現在のリリースを確認し、必要に応じて、次のコマンドで更新します。
- sudo curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
次に、権限を設定します。
- sudo chmod +x /usr/local/bin/docker-compose
次に、バージョンを確認して、インストールが成功したことを確認します。
- docker-compose --version
これにより、インストールしたバージョンが出力されます。
Outputdocker-compose version 1.25.3, build d4d1b42b
Docker Composeがインストールされたので、「HelloWorld」の例を実行する準備が整いました。
ステップ2—DockerComposeを使用してコンテナーを実行する
パブリックDockerレジストリであるDockerHubには、デモンストレーションとテスト用の HelloWorldイメージが含まれています。 これは、DockerComposeを使用してコンテナーを実行するために必要な最小限の構成を示しています。単一のイメージを呼び出すYAMLファイルです。 この最小限の構成を作成して、 hello-world
容器。
まず、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
ローカル画像がまったくない場合は、列見出しのみが表示されます。
OutputREPOSITORY TAG IMAGE ID CREATED SIZE
今、まだ中に ~/hello-world
ディレクトリで、次のコマンドを実行します。
- docker-compose up
コマンドを初めて実行するときに、名前の付いたローカルイメージがない場合 hello-world
、DockerComposeはDockerHubパブリックリポジトリからプルします。
OutputPulling my-test (hello-world:)...
latest: Pulling from library/hello-world
9db2ca6ccae0: Pull complete
Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc
Status: Downloaded newer image for hello-world:latest
. . .
画像をプルした後、 docker-compose
コンテナを作成し、接続して、 hello プログラムを実行します。これにより、インストールが機能しているように見えることが確認されます。
Output. . .
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 |
. . .
次に、それが何をしたかの説明を出力します。
Output To generate this message, Docker took the following steps:
my-test_1 | 1. The Docker client contacted the Docker daemon.
my-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
my-test_1 | (amd64)
my-test_1 | 3. The Docker daemon created a new container from that image which runs the
my-test_1 | executable that produces the output you are currently reading.
my-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
my-test_1 | to your terminal.
Dockerコンテナーは、コマンドがアクティブである間のみ実行されるため、1回 hello
実行が終了すると、コンテナは停止しました。 したがって、アクティブなプロセスを見ると、列ヘッダーが表示されますが、 hello-world
コンテナは実行されていないため、リストされません。
- docker ps
OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
次のステップで必要になるコンテナ情報は、 -a
国旗。 これにより、アクティブなコンテナだけでなく、すべてのコンテナが表示されます。
- docker ps -a
OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06069fd5ca23 hello-world "/hello" 35 minutes ago Exited (0) 35 minutes ago hello-world_my-test_1
これにより、コンテナを使い終わったときにコンテナを削除するために必要な情報が表示されます。
手順3—画像の削除(オプション)
不要なディスク領域を使用しないように、ローカルイメージを削除します。 そのためには、を使用して画像を参照するすべてのコンテナを削除する必要があります。 docker rm
コマンドの後に、 CONTAINER ID
または NAME
. 次の例では、 CONTAINER ID
から docker ps -a
実行したコマンド。 必ずコンテナのIDに置き換えてください。
- docker rm 06069fd5ca23
画像を参照するすべてのコンテナが削除されたら、画像を削除できます。
- docker rmi hello-world
結論
DockerComposeをDebian10にインストールし、Hello Worldの例を実行してインストールをテストし、テストイメージとコンテナーを削除しました。
Hello Worldの例ではインストールが確認されていますが、この基本構成では、DockerComposeの主な利点の1つであるDockerコンテナーのグループを同時に起動および停止できることは示されていません。 Docker Composeの使用方法の詳細については、DockerComposeを使用してWordPressをインストールする方法をご覧ください。