Tech Blog

エンジニアが残すITブログです。

コンテナでApache Webサービスを起動してみる

CentOSのDockerコンテナに、ApacheWebサーバ "httpd" をインストールして、そのDockerイメージからApache Webサービスを起動させてみます。

CentOSのDockerコンテナ起動

CentOSのコンテナを起動して、コンテナに入ります。※今回はバージョン7.5.1804を使用します。

> docker container run -it --name centos01 -h  centos01 centos:7.5.1804 /bin/bash

コンテナ起動の詳細はこちら↓

httpdパッケージのインストール

次に、httpdパッケージをインストール。
同時に、IPアドレスを表示するためのIPコマンドが含まれるiprouteパッケージをインストールしておきます。

> yum install -y httpd iproute

※プロキシサーバの設定が必要な場合は、事前にプロキシサーバを設定しましょう。

> echo "proxy=http://{proxy.your.site}:8080" >> /etc/yum.conf

テスト用のWebコンテンツを作成

Dockerコンテナ内に、テスト用のWebコンテンツ「test.html」を配置します。

> echo "確認用のWebコンテンツです。" > /var/www/html/test.html

Dockerイメージの作成

exitでコンテナから出て、ホストOS側のコマンドプロンプトに戻ります。
httpdをインストールしたDockerコンテナ「centos01」をDockerイメージ 「centos:centos01」として保存します。
※この後、作成したイメージを使って再度コンテナ稼働を確認したいので、稼働中のコンテナ「centos01」は削除しておきます。

> docker container commit centos01 centos:centos01
> docker container rm -f centos01

Dockerコンテナの起動

httpdが入ったDockerイメージ「centos:centos01」を/sbin/initを使って起動します。

> docker container run \
> -it \
> --tmpfs /tmp \
> --tmpfs /run \
> -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
> --stop-signal SIGRTMIN+3 \
> --name centos01 \
> -h centos01 \
> centos:centos01 /sbin/init