【Docker】初心者がDockerfileでapache2サーバを作成してみた

devops

昨年は業務でacpache2用のDockerfileを作成する機会がありました。備忘としてDockerfileやdocker-compose.yamlを使用したコンテナの起動方法を記載したいと思います。

Dockerでapache2のコンテナを起動するまで

環境

OS:Linux ubuntu20.04

Dockerのインストール周りの設定

まずはLinuxサーバにDockerをインストールするところから開始します。

#リポジトリのアップデート
apt update

#docker.ioのインストール
apt install docker.io

#docker-composeのインストール
apt install docker-compose

Dockerfileの作成

Dockerfileを作成します。今回はubuntuのイメージにapache2をインストールし、docker-composeのタイミングでコンテナが起動するように記述します。[“apachectl”,”-D”,”FOREGROUND”]を記述すると、docker-composeで作成した際にコンテナが起動します。

#Dockerfileを作成する
vi Dockerfile

#ファイルの中身を確認する
cat Dockerfile
FROM ubuntu:20.04

RUN apt-get update -y && \
        apt-get install -y tzdata && \
        apt-get install -y apache2 && \
        service apache2 restart

CMD ["apachectl","-D","FOREGROUND"]

docker-compose.ymlの作成

docker-compose.ymlでは、イメージ名を指定します。イメージ名はDockerfileからビルドする際に使用するものと同じにしています。

#docker-compose.ymlを作成
vi docker-compose.yml

#ドキュメントを確認
cat docker-compose.yml
version: "3.7"
services:
  web:
    image: test2022:latest
    init: true
    volumes:
    - .:/usr/local/apache2/htdocs/
    ports:
    - "80:80"

Dockerコンテナのビルドと起動

Dockerfileからdockerイメージを作成した後に、コンテナを起動します。イメージ名はtest2022とします。

#Dockerfileからイメージを作成
docker build -t test2022

#イメージ"test2022"が作成されたことを確認する
docker images

#イメージからコンテナを作成する
docker-compose up -d

#起動中のコンテナを表示する。コンテナIDを控える。
docker ps

#コンテナに入る
docker container exec -it <コンテナID> /bin/bash

#コンテナから抜ける
Ctrl+P、Ctrl+Q

Apacheの起動確認

ブラウザからグローバルIPに接続し、Apacheの画面が表示されることを確認する。

まとめ

今回は、LinuxサーバにDockerをインストールして、Dockerfileとdocker-compose.ymlを使用してコンテナを起動するところまで実施しました。実際の業務では、apacheのmodsecurityもDockerfileで設定しました。また機会があれば公開したいと思います。

タイトルとURLをコピーしました