環境構築sudoDockerであそぶ(4)Apacheの設定を変えるこの記事は2015年12月3日に書かれたものです。内容が古い可能性がありますのでご注意ください。Tweetここ1,2年で注目を集めている仮想化技術の1つ「Docker」について、今更感がありますが試していきたいと思います。他の仮想化技術との違いや特徴、開発環境として使っていくにはどうすればいいかなどを紹介していきたいと考えています。EC2でdocker-composeを使うDockerであそぶ(10)docker-machineを使ってAWS(EC2)にDockerホストを構築するコンテナの設定を変えるには...?Dockerのコンセプトとしてコンテナは状態が変化せず、いつ起動しても同じ状態になっているという点があります。今回の題目である「Apacheの設定を変える」を実現するためにただ単に設定を変えるだけならば、前回やったように設定ファイルをホスト側に持たせてvolumeを使ってマウントさせる方法をとることもできます。一般的にサーバーの設定を変更するときにはコンテナの元となるコンテナイメージを変更し、設定変更を永続化しておくという方法がとられるようです。コンテナイメージを変更するには「Dockerfile」というChefでいうところレシピにあたるファイル、VagrantでいうところVagrantfileにあたるファイルを作成し、そのレシピを使ってイメージを再作成(ビルド)します。Dockerfileに記述できるコマンドはたくさんありますが、ひとまず詳しい説明は省き使ってみたいと思います。コンテナのhttpd.confを取得する今回作成するオリジナルイメージのベースには前回pullしたhttpdの公式イメージを使いたいと思います。その公式イメージで使われているhttpd.confファイルを取得しましょう。コンテナを起動します。基本的には前回実行したコマンドと同じですが、起動したコンテナを残しておきたいため、「–rm」オプションは外しています。httpd:latest起動したら「CTRL+C」でコンテナを終了しておきましょう。次のコマンドでコンテナIDを確認します。small_pareこの場合は「1d3ad56d0c6e」になります。このIDを使ってコンテナの内部からファイルをコピーすることができます。cp」コマンドを使用します。ローカルパス」と指定します。Documents/docker/httpd/以下のフォルダをエクスプローラーで確認してみてください。httpd.confが保存されているはずです。C:\Users\sudoy\Documents\docker\httpd※パスは筆者の環境になりますので、適宜読み替えてください。httpd.confの設定を変更するでは、取得した「httpd.conf」ファイルの設定を変更してみましょう。意味はないですが、今回はポート番号を80から8080に変更してみました。変更箇所!コンテナイメージを作成するいよいよオリジナルのコンテナイメージの作成です。以下のフォルダにレシピとなる「Dockerfile」を作成します。作成するイメージのベースとなるコンテナイメージを指定します。今回は前回使用したhttpd:lastestを指定しています。ホストのファイルをコンテナイメージ内部にコピーするコマンドです。変更したhttpd.confファイルと置き換えています。このファイルを使ってオリジナルのコンテナイメージを作成します。build」コマンドの「-t」オプションは作成するコンテナイメージにタイトル(名前)をつけるためのオプションです。最後の「.」はカレントディレクトリにある「Dockerfile」を使用するということを表しますので、忘れずに付けておきましょう。イメージが作成できたかどうか確認しましょう。MB「my-httpd」というイメージができていればOKです。オリジナルのコンテナイメージを起動するでは、このイメージを元にコンテナを起動してみましょう。Apacheのポートを変えましたので、ポートマッピングのオプション「-p」も変えておきます。FOREGROUND'実行結果は変わりありませんね。以下のURLへアクセスしてみましょう。http://192.168.99.100:8080/うまくいきました。開発プロジェクトなどでは他のメンバーに「Dockerfile」とこれに付随するファイルだけを渡しておけば全メンバーで同じ環境となるわけですね。(今回だとpublic-htmlフォルダ、httpd.confファイル)では今回はここまでにしたいと思います。