【Docker】初心者がDocker環境でPHPサーバーを起動してみた

スポンサーリンク
プログラミング
スポンサーリンク
スポンサーリンク

【Docker】初心者がDocker環境でPHPサーバーを起動してみた

今更ながら、Dockerを勉強始めたので、実施したことを書いていきます。

やりたいこと
  1. ホストマシンにDocker環境を構築して、PHPアプリケーション index.php の出力をホストマシン http://localhost:8000 で確認できるようにする
  2. WebサーバにはPHPのビルトインWebサーバを使用する。Webサーバの起動コマンドは php -S 0.0.0.0:80 -t /var/www/html 
  3. ブラウザで Hello, world! を表示する。

作成したファイル

.
├── Dockerfile
└── index.php
FROM ubuntu:16.04

RUN apt-get update
RUN apt-get install -y software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
RUN apt-get update
RUN apt-get install -y php7.4

COPY ./index.php /var/www/html/

CMD [ "php", "-S", "0.0.0.0:80", "-t", "/var/www/html/" ]
Hello world!

ホストマシンにDocker環境を構築

公式サイトからインストールする
https://hub.docker.com/editions/community/docker-ce-desktop-mac

以下コマンドでバージョンが取得できればOKです。

$ docker -v
Docker version 20.10.2, build 2291f61

起動コマンド

-- dockerイメージを作成する
$ docker build -t dockerapp:1.0 .
-- コンテナを作成し、起動する。ホストのポートは8080,コンテナのポートは80
-- ローカルホストの8080にアクセスすると、コンテナの80にアクセスできるようになる
$ docker run --rm -p 8000:80 dockerapp:1.0

http://localhost:8000にアクセスしてHello world! が表示されれば成功

解説

Dockerfile
FROM ubuntu:16.04

FROMでベースとなるDockerImageを指定する。
イメージ名:ubuntu、タグ名:16.04のイメージファイルをベースに指定する。
イメージファイルはdocker hubに記載があるので、そこから選択した。


RUN apt-get update
RUN apt-get install -y software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
RUN apt-get update
RUN apt-get install -y php7.4

RUNコマンドで命令実行する。
ここではphpをインストールするコマンドを実行


COPY ./index.php /var/www/html/

COPYコマンドでホストからコンテナにファイルをコピーする


CMD [ "php", "-S", "0.0.0.0:80", "-t", "/var/www/html/" ]

CMDコマンドで php -S 0.0.0.0:80 -t /var/www/html を実行

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