hidemium's blog

日々学んだことをアウトプットする。

Docker

DockerでKandanとHubotを動かす

チャット上のHubotを通じて運用を自動化するChatOpsという運用スタイルが注目されています。ローカルでチャット上で動くHubotを試すために、HipChatクローンのKandanとHubotを動作するDockerfileを書いてみました。 構成 Ubuntu 14.04 Docker 1.3.0 Kandan 1…

ShipyardでDockerのWebUIを構築してみた

Dockerでどのようなコンテナが起動しているか、コンテナの状態を確認するためにWebUIを提供するツールがいくつか開発されています。今回は、Shipyardをインストールし、コンテナの状態がどのように確認できるのか試してみました。 構成 Ubuntu 14.04 Docker …

Figで複数のDockerコンテナをまとめて起動して、Redmineを構築する

以前、sameersbn/redmineというRedmineのイメージを試してみましたが、アプリケーションとMySQLでコンテナを分離した場合、複数のコンテナ起動や、DBの作成、マイグレーションの実行が個別に必要となり手間がかかっていました。そこで今回は、マルチコンテナ…

DockerでPlay Frameworkアプリケーションをデプロイする

DockerによるWebアプリのデプロイ方法をいくつか調べてみると、ビルド時間の短縮やメンテナンス性から、インフラレイヤーとアプリケーションレイヤーに分けて差分ビルドする方法が良さそうだったので、Play Frameworkアプリでデプロイを試してみました。 構…

KibanaでDockerコンテナのメトリクスを可視化する

前回、Sensuで取得したDockerコンテナのメトリクスをElasticsearchに転送することができたので、今回はメトリクスを可視化するためにKibanaの設定を行ってみました。なお、Dockerコンテナ内からはコンテナごとのリソース情報は見えず、ホスト全体のリソース…

SensuからElasticsearchにメトリクスを転送する

前回、Elasticsearchのインストールができたため、今回はinokappa/sensu-handler-metrics-elasticsearchを用いて、SensuからElasticsearchにDockerコンテナのメトリクスを転送できるか試してみました。*1 なお、Sensuのメトリクスの可視化にはGraphiteがよく…

Elasticsearch + Kibanaを起動するDockerfileを書いてみた

前回、sensuでDockerコンテナを監視することができたため、今回はDockerコンテナの監視を可視化するための前段階として、最近注目されているサーチエンジンであるElasticsearchを起動するDockerfileを書いてみました。また、Elasticsearchのフロントエンドを…

ChefからDockerコンテナにSensu Clientをインストールする

前回、ChefからDockerコンテナにSensu Serverをインストールすることができました。そこで、今回はChefからDockerコンテナにSensu Clientをインストールして、Dockerコンテナが自動的に監視対象として追加されるか試してみました。 また、Clientの監視定義と…

ChefからSensuの監視定義を設定する

前回、ChefからDockerコンテナにSensu Serverをインストールすることができました。そこで、今回はSensuの監視定義として、CPU使用率監視、メモリ使用率監視、ログ監視、プロセス監視を設定してみました。 構成 Ubuntu 12.04: サーバ構築対象 ※Ubuntu 12.04…

ChefからDockerコンテナにSensu Serverをインストールする

前回、ChefからDockerコンテナ内の起動プロセスを追加することが確認できました。そこで、今回はChefを使ってDockerコンテナに監視ツールのSensu Serverをインストールしてみました。 構成 Ubuntu 12.04: サーバ構築対象 ※Ubuntu 12.04はDocker 1.0.0上で動…

ChefからDockerコンテナ内の起動プロセスを追加する

Dockerはコンテナの起動時に、initプロセスではなく、CMDで指定したプロセスから実行されるため、通常は1つしかプロセスを起動できない制約があります。しかし、プロセス管理ツールのsupervisorを使用すれば、コンテナ内で複数のプロセスを起動することがで…

DockerでMySQLを起動するDockerfileを書いてみた

Dockerfileを書く練習のため、今回は、sshdとMySQLの複数プロセスを起動するDockerfileを書いてみました。Dockerはプロセスを起動させるコマンドを1つしか指定できないため、プロセス管理ツールのSupervisorを使用しています。また、コンテナ内のデータベー…

DockerでアプリケーションとMySQLをコンテナ化してRedmineを構築する

Dockerの公式リポジトリにsameersbn/redmineというRedmineのイメージがあったので試してみました。このイメージの面白いところは、アプリケーションだけでなくデータベースもコンテナにし、さらにデータファイルをコンテナから分離してるところです。 構成 U…

Docker + Chef + serverspec + Jenkins でインフラCIの環境を構築してみた

Dockerが使えるようになったため、Jenkinsにより仮想サーバの起動から、サーバ構築、テスト、仮想サーバの廃棄までを自動化してみました。 やりたいこと 以下のように、Chefのリポジトリの更新をトリガーに、仮想サーバの起動から、サーバ構築、テスト、仮想…

Dockerのインストールと動作確認

VMwareやVirtualBoxなどのハイパーバイザ型とは異なり、起動が早く軽い仮想サーバが使えるコンテナ型の仮想化ソフトウェアのDockerについてインストールしてみました。 構成 Ubuntu 12.04 : Docker をインストール ※上記のサーバはVMware ESXi 5.1上で動作し…