STERFIELD

Docker Installation Challange

Docker Installation Challange

開発環境の管理

開発環境の管理について触れた内容です。

現在の開発環境

今までは“vagrant”“VirtualBox”というアプリケーションを使って
開発環境を構築していました。

この組み合わせを選んだ理由は特に無く
強いて言うなれば、以前一緒に開発してた技師がこれを使っていたからです。

前々から“Docker”の方が軽い
管理がしやすい という噂を聞き今回チャレンジしてみました。

Vagrantのデメリット

  • 重い
  • 作業環境を構築したあとでまたインフラは別に構築しなければならない

Dockerのメリット

  • 軽い(であろう)
  • 環境の中身も構築、管理できる

VagrantからDockerへ

結論としては構築は出来たものの
WebApplicationを動かすほどに色々組み込むには至らず。

インストール

まずはDockerのプラットフォームを公式からダウンロードしてインストールします。

ここからダウンロードします。
先にアカウントを作る必要があります。
あとで作成する個別の環境などを管理するための
GitHubアカウントのようなものだと思ってください。

インストール自体はこれで終了。
アプリケーションからDockerを起動しておいてください。

Nginx+PHP-FPM+DB環境の定義

Composeという概念

Dockerにはcomposeという
各サービスの定義を管理する機能があります。

ソフトウェア、コンテンツ、インフラ等を
個別にデプロイ管理することが可能。

Ansibleよりも単体でのバージョン管理などを
厳密に管理しつつ個別にアップデートなども出来る。

サンプル

実際にDeployするときのメインとなる定義ファイル。

webサーバー, webアプリケーション, DB
ごとにコンテナと呼ばれる単位に区切ってそれぞれを管理します。

Dockerfile

コンテナ毎にdocker-*と指定しているところで
前処理のようなことが出来る。
インストールするソフトウェアのバージョン指定なども可。

例えばNginxの場合だと

のように”1.10.3″を指定してインストール後に
設定ファイルなどの構築をします。

動作

先に前処理(Dockerfile系)のbuild。

その次にdocker-compose.ymlに定義した
各コンテナの構築。

失敗するとdocker-compose psの結果に"Exit 1"が表示される。
原因はdocker-compose logs -f –tail=”100″を参照しながら解消する

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい