LoginSignup
35
36

More than 5 years have passed since last update.

テスト環境をDockerで作成する(Webサーバ)

Last updated at Posted at 2016-01-26

■目的

前回、Dockerを色々触ってみてなんとなく感触が掴めました。
今回は理想形への第一歩として「Webサーバ」をDockerで作成してみたいと思います。

【追記】
有識者より「1コンテナ1プロセス」が良い、とご教授いただいたので、「Apache」と「Java」は分けて考えた方が良さそうです。

■Webサーバの構成

OSは「CentOS 6.7」、「Apache」と「Java」をインストールしたいので、docker pullでイメージをダウンロードできなさそうです。
(上記構成のイメージが配布されているかもしれませんが...)
「Dockerfile」を作成して、自前でイメージを作成することにします。

■手順

1. Dockerfile作成

任意の場所に「Dockerfile」を作成する
$ touch Dockerfile

2. Dockerfileに以下を記述する

Dockerfile
# CentOS 6.7のイメージ
FROM centos:6.7

# 管理者
MAINTAINER nagi244<hoge@hoge.co.jp>

# システムアップデートと「wget」インストール
RUN yum -y update && yum -y install wget && yum clean all

# Apacheインストール
RUN yum -y install httpd && yum clean all

# JDKインストール
RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u71-b15/jdk-8u71-linux-x64.rpm" \
&& yum -y localinstall jdk-8u71-linux-x64.rpm \
&& yum clean all \
&& rm jdk-8u71-linux-x64.rpm

# コンテナ内のポート番号
EXPOSE 80

# コンテナ内でフォアグラウンドで実行
ENTRYPOINT ["/usr/sbin/httpd"]
CMD ["-D", "FOREGROUND"]

JDKのバージョンは、こちらでURLをコピーしてお好みのバージョンをインストールできます。

3. イメージ作成

Dockerfileからイメージを作成するには、docker buildコマンドを使用します。
「-t」オプションでイメージのリポジトリ名を付けられるようです。今回はわかりやすく「web-server」としました。
「.」はDockerfileの場所です。Dockerfileと同じ場所でコマンドを叩いています。
$ docker build -t web-server .

成功したら、docker imagesコマンドでイメージができたか確認します。

4. Docker起動

以下のコマンドで、Dockerをバックグランウンドで起動します。
ポート番号「8080」は、外部からコンテナにアクセスする際に使用するポート番号のようです。

$ docker run --name hoge1 -d -p 8080:80 web-server

5. 動作確認

ホストのブラウザで「http://[VMのIPアドレス]:8080/」にアクセスしてみます。「Apache 2 Test Page」が表示されました!
無事WebサーバをDockerで作成できました。

35
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
36