Dockerは、事実上どこでも実行できるポータブルで自給自足のコンテナーとしてアプリケーションを迅速に構築、テスト、デプロイできるようにするコンテナー化プラットフォームです。
Docker Composeは、マルチコンテナーDockerアプリケーションを定義およびオーケストレーションできるツールです。 YAMLファイルを使用して、アプリケーションのコンテナ、ネットワーク、ボリュームを構成します。
作成はさまざまな目的に使用できます。単一ホストアプリケーションのデプロイ、自動テスト、およびローカル開発は、DockerComposeの最も一般的なユースケースです。
このチュートリアルでは、最新バージョンのDockerComposeをDebian10、Busterにインストールする方法について説明します。また、DockerComposeの基本的な概念とコマンドについても説明します。
前提条件#
続行する前に、次の前提条件を満たしていることを確認してください。
- sudo権限を持つユーザーとしてログインしました。
- Debian10machineにDockerがインストールされています。
Debian 10へのDockerComposeのインストール#
DockerComposeインストールパッケージは公式のDebian10リポジトリで利用できますが、常に最新バージョンであるとは限りません。推奨されるアプローチは、DockerのGitHubリポジトリからDockerComposeをインストールすることです。
この記事を書いている時点で、DockerComposeの最新の安定バージョンはバージョン1.23.1
です。 。 Composeバイナリをダウンロードする前に、GitHubandのComposeリポジトリリリースページにアクセスして、ダウンロード可能な新しいバージョンがあるかどうかを確認してください。
次の手順を使用して、最新バージョンのDockerComposeをDebian10にインストールします。
-
DockerComposeバイナリを
/usr/local/bin
にダウンロードしますwget
のあるディレクトリ または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
-
chmod
を使用する Composeバイナリを実行可能にするには:sudo chmod +x /usr/local/bin/docker-compose
-
インストールを確認するには、次のコマンドを使用して、作成バージョンを出力します。
docker-compose --version
出力は次のようになります:
docker-compose version 1.23.1, build b02f1306
Docker Compose入門#
このセクションでは、DockerComposeを使用してローカルのWordPress開発環境をセットアップする方法を示します。
プロジェクトのディレクトリを作成し、そこに移動します:
mkdir wordpress_app && cd wordpress_app
テキストエディタを開き、ファイル名を付けたdocker-compose.yml
を作成します :
nano docker-compose.yml
次のコンテンツを貼り付けます:
docker-compose.ymlversion: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
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
。 Docker Composeを実行すると、各サービスが個別のコンテナーを作成します。
db
サービス:
- 画像は
mysql:8.0
に設定されています 画像。イメージが存在しない場合、ComposeはDockerHubパブリックリポジトリからイメージをプルします。command
で始まる行 デフォルトのコマンドを上書きします。 -
restart: always
ポリシーは、コンテナがダウンした場合にコンテナを再起動するようにComposeに指示します。 - コンテナは名前付きボリューム
db_data
を使用します データベースを永続化するため。 -
mysql:8.0
の環境変数を定義します 画像。
wordpress
サービス:
-
wordpress
を使用します 画像。 -
wp_data
をマウントします/var/lib/mysql
へのホスト上のディレクトリ コンテナ内。 - 公開されたポートを転送する
80
コンテナからポート8080
ホストマシン上。 -
wordpress
の環境変数を定義します 画像。 -
depends_on
命令は、2つのサービス間の依存関係を定義します。この例では、db
wordpress
の前に開始されます 。
プロジェクトディレクトリから、次のコマンドを実行してWordPressスタックを起動します。
docker-compose up
出力は次のようになります。
...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
...
Docker Composeはイメージをプルし、コンテナーを起動して、wp_data
を作成します プロジェクトディレクトリ内のディレクトリ。
http://0.0.0.0:8080/
と入力します ブラウザに、標準のWordPressインストール画面が表示されます。
この時点で、WordPressアプリケーションが稼働しており、作業を開始できます。
作成を停止するには、CTRL+C
を押します 。
-d
を使用して、デタッチモードで作成を開始することもできます。 オプション:
docker-compose up -d
実行中のDockerコンテナを表示するには、次のコマンドを使用します。
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_99946702ac7e docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1_a428d8408817 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
Composeがデタッチモードで実行されているときにサービスを停止するには、次を使用します。
docker-compose stop
コンテナを完全に削除する場合は、down
を使用してください オプション:
docker-compose down
--volumes
を渡す スイッチはデータボリュームも削除します:
docker-compose down --volumes
Docker Composeのアンインストール#
Docker Composeをアンインストールする必要がある場合は、次のように入力するだけでバイナリを削除できます。
sudo rm /usr/local/bin/docker-compose