素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

投稿日:

【Dockerサービスの必須ツール】docker-composeで複数コンテナを簡単管理

YouTube

スポンサーリンク

336×280




Docker管理の課題

複数コンテナ管理のしにくさ

以前、Dockerfileを使ってコンテナを作成し、runコマンドを使ってコンテナを起動する方法を紹介しました。

単体のコンテナを起動して、単一のコンテナだけで完結するのであれば、コマンド一発起動/停止を実行出来るのでそこまで使いづらさを感じることはありませんが、Docker内に複数のコンテナを起動し、それぞれで連携をするような構成にした場合、コマンドを実行する回数が増えてしまい、とても管理しにくい状態になってしまいます。

例として、以下の記事でやったようなRedmineとMySQLを同時に動かす場合を考えてみましょう。

起動するたびにコンテナの台数分コマンドを投げて動かす必要があるのですが、コンテナ数が増えると毎回コマンドを打つのはとても手間になってしまいます。

また、Shellスクリプトにしてもいいですが、多少複雑なスクリプトを書く必要がありちょっと敷居が高いです。

そんな時にDockerCompose

そんな複数のコンテナ管理を簡単にしてくれるツールが「Docker Compose」です。

docker-composeファイルに各コンテナの情報を記載し、起動コマンドで読み込ませることで一気に複数のコンテナを起動することが可能です。

また、docker-comoposeファイルはyaml形式での記述なので、スマートに設定を記述することが出来ます。

今回は直接dockerコマンドで起動していたRedmineMySQLをdocker-composeで起動するようにリファクタリングしてみましょう。

手順

前提

Point

  • Dockerインストール済み(docker for macでインストール可能)
  • DockerComposeインストール済み(docker for macでインストール可能)
  • RedmineのDockerイメージ取得済み
  • MySQLのDockerイメージ取得済み

参考

docker-compose.ymlの作成

dockerコマンドで直接2つのコンテナを起動していた部分をdocker-composeに書き直すと以下のようになります。
※docker-composeで動くように多少変更しています

確認

では、実際に確認してみましょう。
以下のコマンドで起動が出来ます。

以下のようなログが出力されてコンテナが起動されます。

http://localhost/にアクセスして以下の画面が表示されればdocker-composeへのリファクタリング完了です。

終わりに

以上のように、起動オプションをファイル管理出来るようになるので可視性保守性が上がり、起動もコマンド一発で済むようになりました。

dockerの技術はまだまだ発展しており、複数のコンテナを起動してサービスを実現する事も少なくないので、是非docker-composeの導入をされて見てはいかがでしょうか♪

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , ,

blogenist

Author: blogenist

関連記事

YouTube

お名前.comサイドバー