ApacheのHTTPサーバのDockerコンテナからWebサイトを公開する方法を紹介する。
サーバ一台で複数のWebサイトを走らせたり、一時的にWebサイトを公開するのによさそう。
環境
- Ubuntu 20.04.2 LTS
- Docker 20.10.5
Dockerのインストールは、公式Docsを参考にするべし。
手順
1. 前準備
まず、公開したいhtmlファイルを設置する。
> cd /var
> mkdir www
> sudo chown $USER www
> cd www
> mkdir html
> sudo chown $USER html
# 最後に公開したいhtmlファイルを設置した
2. Dockerコンテナの起動
httpdはApacheのDockerイメージ。コンテナの名前はmyweb
とする。
> docker run -d -p 80:80 --name myweb -v /var/www/html:/usr/local/apache2/htdocs httpd
3. 更新
htmlファイルを更新する。
> docker restart myweb
4. Dockerコンテナの停止
Dockerコンテナを停止。
> docker stop myweb
docker stop myweb
を実行した後、再びDockerコンテナを再稼働させるとき
> docker start myweb
docker stop myweb
を実行した後、再びDockerコンテナを削除させるとき
> docker rm myweb
補足
Dockerfileからコンテナを起動
FROM httpd
は最低限必要。Dokerfileは/var/www/html/
に設置する。
FROM httpd
RUN set -ex && \
apt update && \
apt install -y vim && \
apt install -y nano && \
apt install -y less && \
apt install -y tree && \
cp /usr/share/zoneinfo/Japan /etc/localtime
DockerfileからDockerイメージimg_myweb
を建てる。
> docker build -t img_myweb /var/www/html/
Dokerイメージimg_myweb
からDokerコンテナmyweb
を起動する。
> docker run -d -p 80:80 --name myweb -v /var/www/html:/usr/local/apache2/htdocs img_myweb