昨年は業務で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で設定しました。また機会があれば公開したいと思います。