DockerでPHPのコンテナを試してみる
Vagrantでdockerの環境を起動。
Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "centos/7" config.vm.network "private_network", ip: "192.168.33.10" config.vm.provision :docker end
> vagrant up > vagrant ssh
PHPのイメージを取得。
$ docker pull php:latest $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE php latest b6f7ff80017a 5 days ago 422MB
対話モードで実行
phpのDockerfileを見ると、CMDはphpを対話モードで実行するだけ。 https://github.com/docker-library/php/blob/74175669f4162058e1fb0d2b0cf342e35f9c0804/8.0/buster/cli/Dockerfile
・・・ CMD ["php", "-a"]
コンテナを作成して起動すると、
$ docker create -it --name hoge php:latest $ docker start -ai hoge
PHPの対話モードになる。
php > echo "Hello, world!"; Hello, world!
ビルドインウェブサーバーを実行
「php -S 0.0.0.0:80」でビルトインウェブサーバーを実行するようにして、
コンテナを作成して起動。
$ docker create --name hoge2 -p 80:80 -v /home/vagrant:/hoge -w /hoge php:latest php -S 0.0.0.0:80 $ docker start hoge2
inde.phpを作成。
$ vi index.php <?php echo "Hello, world!";
ブラウザからアクセスすると、PHPが表示される。
※runだとイメージの取得から起動までまとめて行える。
$ docker run -d --name hoge2 -p 80:80 -v /home/vagrant:/hoge -w /hoge php:latest php -S 0.0.0.0:80