kgrss's blog

プログラムを中心にいろいろなことを記事にしていきます!

自分のサーバーのDocker環境について

どうも、こがらしです

今日は自分が利用しているサーバーでどんな風にDockerを利用して居るのかというのをつらつらと書いていこうと思います

まずDockerって言ったらDockerfileでしょ?これ切り離せないでしょ?
ってみんな思うんじゃないかと思いますが、自分の環境ではDockerfileを利用せずに運用しています。

まずは、イメージのビルドです。
イメージのビルドを行う際には、PackerとAnsibleを用いています。
Ansibleを利用することで複数のイメージを作成する際にサーバーのレシピを使い回すことが出来るようになります。
また、サーバーに対してべき等性を保つことが出来るようになります。
実際にはタダ自分がdockerfileを好かなかっただの理由で選びました。

次にイメージを実行する環境についてです。
dockerfileを使わないのにどうやって実行するの?ということになると思います。
この部分はdocker-composeを利用しています。
特徴としてはdockerfileに書いていた内容をYAML形式で記述できるようになり、dockerfileの書き方から離れられることです。
YAMLの読み書きのしやすさについては多くを語る必要はないでしょう。

三つ目はdocker使いを悩ますサービスをどう動かすかの部分です。 多くの環境でコンテナ内にsupervisorをインストールしてサービスを動かしていると思います。
自分の環境では、ホスト側にsupervisorをインストールしてdocker-composeを対象にサービス化を行っています。 個人的にはコンテナ内にsupervisorを置く必要がなくなるのとサービスの管理を一元化できるので良かったと思っています。
ただ、dockerのオプションでサービス化できるみたいですが。

こんな感じの環境でサービスを動かしています。
何かの参考になれば。

今日はこの辺で。