ウェブサーバーしたい(httpd
)
1$ docker run -d -p 8080:80 --name my-httpd httpd
代表的なApacheをDockerを使って遊んでみようと思います。
Apacheコンテナのイメージ名はhttpdです。
ポート番号を8080番(-p 8080:80
)し、コンテナの名前をmy-httpd
(--name httpd
)として起動しています。
コンテナが起動したらブラウザでhttp://localhost:8080
を開いて「It works!」と表示されていればOKです。
コンテナには任意の名前をつけることができます。
僕はテスト時にはmy-イメージ名
とつけることにしています。
以下では、このコンテナ名を使って、起動したコンテナにdocker exec -it
でログインしています。
コマンドを追加したい(apt-get
)
1$ docker excec -it my-httpd bash
2(my-httpd) $ apt-get update
3(my-httpd) $ apt-get install less
4(my-httpd) $ which less
5/usr/bin/less
6(my-httpd) $ apt-get install vim
7(my-httpd) $ which vim
8/usr/bin/vim
公式レジストリから取得したイメージには、(使い慣れた)コマンドが入っていないことがあります。
コンテナの中でapt-get
を使って追加できます。
この場合はless
とvim
をインストールしています。
設定ファイルを確認したい(httpd.conf
)
1$ docker exec -it my-httpd bash
2(my-httpd) $ find . -name httpd.conf
3./conf/original/httpd.conf
4./conf/httpd.conf
5(my-httpd) $ less conf/httpd.conf
Apacheサーバー設定のファイル名はhttpd.conf
です。
ファイルの場所が分からない場合はfindコマンドで検索できます。
このコンテナでは/usr/local/apache2/conf/httpd.conf
にありました。
トップページを変更したい
1$ docker exec -it my-httpd bash
2(my-httpd) $ grep "DocumentRoot" conf/httpd.conf
3DocumentRoot "/usr/local/apache2/htdocs"
4(my-httpd) $ vi htdocs/index.html
まず、設定ファイル(httpd.conf
)の中で、ドキュメントルートとなっているディレクトリを探します。
設定ファイルに対してgrepコマンドを使いDocumentRoot
という文字列を検索しました。
すると、ドキュメントルートは/usr/local/apache2/htdocs/
であることが分かりました。
トップページを変更する場合はhtdocs/index.html
を編集すればよさそうです。
また、他にもウェブサーバーで公開したいファイルは、このドキュメントルートの下に配置すればOKです。