【docker】Amazon Linux2 apache インストール

docker compose を使用して Amazon Linux2 コンテナに Apache をインストールします。

今回はブラウザから http://localhost でアクセスするとApacheのテストページが表示されることを確認します。

ディレクトリ構成

ディレクトリ構成は以下とします。
今回は docker-compose.yml と Dockerfile を作成します。

ディレクトリ or ファイル説明
apphtmlやphpファイルなどを配置する為のディレクトリ
docker-compose.ymldocker-compose.ymlファイル
docker/web/DockerfileDockerfileファイル

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の設定は設定ファイルに設定を記載します。
次回は 設定ファイルの場所について説明します。

© DeNnie.Lab All Rights Reserved.