docker compose を使用して Amazon Linux2 コンテナに Apache をインストールします。
今回はブラウザから http://localhost でアクセスするとApacheのテストページが表示されることを確認します。
目次
ディレクトリ構成
ディレクトリ構成は以下とします。
今回は docker-compose.yml と Dockerfile を作成します。
ディレクトリ or ファイル | 説明 |
---|---|
app | htmlやphpファイルなどを配置する為のディレクトリ |
docker-compose.yml | docker-compose.ymlファイル |
docker/web/Dockerfile | Dockerfileファイル |
docker-compose.yml
docker-compose.yml の内容は以下の通りです。
version: '3'
services:
web:
container_name: amazonlinux2_sample01
restart: always
build:
context: .
dockerfile: ./docker/web/Dockerfile
privileged: true
ports:
- 80:80
volumes:
- ./app:/var/www/html
container_name
コンテナ名です。任意の名前を設定して下さい。
build
context
実行ディレクトリの位置を指定します。. (ドット) を指定した場合、docker compose コマンドを実行したディレクトリが起点となります。このディレクトリが起点とされるので、ファイルパスなどパスを指定する際は context で指定したディレクトリを起点にパスを定義します。
dockerfile
contextで指定したディレクトリの位置を起点とし、Dockerfileファイルのパスを指定して下さい。ファイル名まで指定することに注意して下さい。
ports
今回は80を使用していますが、任意のポートを指定して下さい。
volumes
今回は自分のPCのディレクトリ(app) と、webサーバのドキュメントルート( “/var/www/html” )を同期させます。app以下にhtmlファイルを置くと、httpでアクセスしたhtmlファイルを見ることができます。
Dockerfile
Dockerfileには Apache をインストールするコマンド記載します。
# イメージ
FROM amazonlinux:2
# apacheのインストール
RUN yum -y update
RUN yum -y install httpd
# apacheを自動起動させる
RUN systemctl enable httpd
# コンテナ起動時 (docker run) コマンド
CMD ["/sbin/init"]
コマンドの実行
docker-compose.ymlが存在するディレクトリで、以下の順にコマンドを実行します。
・ビルド
docker-compose build
・コンテナ起動
docker-compose up -d
・コンテナ起動確認
docker-compose ps
・コンテナ起動結果
Name Command State Ports
---------------------------------------------------------------
amazonlinux2_sample01 /sbin/init Up 0.0.0.0:80->80/tcp
動作確認
ブラウザから http://localhost を入力して下さい。
以下のような画面が表示されればOKです。
最後に
Apacheの設定は設定ファイルに設定を記載します。
次回は 設定ファイルの場所について説明します。