 
 Docker Composeは、マルチコンテナーDockerアプリケーションを定義および管理できるツールです。 YAMLファイルを使用して、アプリケーションのサービス、ネットワーク、ボリュームを構成します。
作成はさまざまな目的に使用できます。単一ホストアプリケーションのデプロイ、自動テスト、およびローカル開発は、DockerComposeの最も一般的なユースケースです。
このチュートリアルでは、最新バージョンのDockerComposeをUbuntu18.04にインストールする方法と、DockerComposeの基本的な概念とコマンドについて説明します。
同じ手順がUbuntu16.04と、Debian、Linux Mint、ElementaryOSなどの他のDebianベースのディストリビューションにも当てはまります。
前提条件#
このチュートリアルを続行する前に、次の前提条件を満たしていることを確認してください。
- sudo権限を持つユーザーとしてログインしました。
- Ubuntu18.04にDockerをインストールして使用する方法の手順に従ってDockerをインストールします。
UbuntuにDockerComposeをインストールする#
DockerComposeインストールパッケージは公式のUbuntu18.04リポジトリで利用できますが、常に最新バージョンであるとは限りません。推奨されるアプローチは、DockerのGitHubリポジトリからDockerComposeをインストールすることです。
 この記事を書いている時点で、DockerComposeの最新の安定バージョンはバージョン1.23.1です。 。 Composeバイナリをダウンロードする前に、GitHubandのComposeリポジトリリリースページにアクセスして、ダウンロード可能な新しいバージョンがあるかどうかを確認してください。
Ubuntu18.04にDockerComposeをインストールするには、次の手順に従います。
-  DockerComposeバイナリを /usr/local/binにダウンロードします 次のcurlを持つディレクトリ コマンド:sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/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.23.1, build b02f1306
Docker Composeの使用を開始する#
このセクションでは、DockerComposeを使用してUbuntu18.04でマルチコンテナーWordPressアプリケーションをセットアップする方法を示します。
プロジェクトディレクトリを作成してそこに移動することから始めます:
mkdir my_appcd my_app
 テキストエディターを起動し、ファイル名を付けたdocker-compose.ymlを作成します プロジェクトディレクトリ内:
nano docker-compose.yml次のコンテンツを貼り付けます:
docker-compose.ymlversion: '3.3'
services:
  db:
    image: mysql:5.7
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
  wordpress:
    image: wordpress
    restart: always
    volumes:
      - ./wp_data:/var/www/html
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: password
    depends_on:
       - db
volumes:
    db_data:
    wp_data:
コードを1行ずつ分析してみましょう。
最初の行では、作成ファイルのバージョンを指定しています。特定のDockerリリースをサポートするComposeファイル形式にはいくつかの異なるバージョンがあります。
 次に、dbという2つのサービスを定義します。 およびwordpress 。各サービスは1つのイメージを実行し、docker-composeが実行されると個別のコンテナーを作成します。
 db サービス:
-  mysql:5.7を使用します 画像。イメージがシステムに存在しない場合は、DockerHubパブリックリポジトリからプルされます。
- 再起動を使用しますalwaysコンテナに常に再起動するように指示するポリシー。
- 名前付きボリュームを作成しますdb_dataデータベースを永続化するため。
-  mysql:5.7の環境変数を定義します 画像。
 wordpress サービス:
-  wordpressを使用します 画像。イメージがシステムに存在しない場合、ComposeはDockerHubパブリックリポジトリからイメージをプルします。
- 再起動を使用しますalwaysコンテナに常に再起動するように指示するポリシー。
-  wp_dataをマウントします/var/lib/mysqlへのホスト上のディレクトリ コンテナ内。
- コンテナの公開されたポート80をホストマシンのポート8080に転送します。
-  wordpressの環境変数を定義します 画像。
-  depends_on命令は、2つのサービス間の依存関係を定義します。この例では、dbwordpressの前に開始されます 。
プロジェクトディレクトリから、次のコマンドを実行してWordPressアプリケーションを起動します。
docker-compose up出力は次のようになります。
...
wordpress_1  | [Sun Sep 23 22:31:43.499055 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
wordpress_1  | [Sun Sep 23 22:31:43.499796 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
 Composeは両方のイメージをプルし、2つのコンテナーを開始して、wp_dataを作成します。 プロジェクトディレクトリ内のディレクトリ。
 http://0.0.0.0:8080/と入力します ブラウザにWordpressのインストール画面が表示されます。
この時点で、Wordpressアプリケーションが稼働しており、テーマまたはプラグインの作業を開始できます。
 作成を停止するには、CTRL+Cを押します 。
 -dを渡すことで、デタッチモードで作成を開始することもできます。 フラグ。
docker-compose up -d
 実行中のサービスを確認するには、psを使用します オプション:
docker-compose ps       Name                     Command               State          Ports        
----------------------------------------------------------------------------------
my_app_db_1          docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp 
my_app_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:8080->80/tcp
Composeがデタッチモードで実行されている場合、サービスの使用を停止します。
docker-compose stop
 コンテナを完全に削除する場合は、downを使用してください オプション:
docker-compose down
 --volumesを渡す スイッチはデータボリュームも削除します:
docker-compose down --volumesDocker Composeのアンインストール#
何らかの理由でDockerComposeをアンインストールする場合は、次のように入力してバイナリを削除できます。
sudo rm /usr/local/bin/docker-compose