Docker で PHP

■イメージ作成
参考:Docker for Windows、Dockerfileを試してみる

○Dockerfileを作成

FROM php:7.1-apache

# PHPモジュールインストール
RUN docker-php-ext-install -j$(nproc) pdo_mysql

○イメージ作成
> cd [Dockerfileのフォルダパス]
> docker build ./ -t php_test  ・・・名前を指定

SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host
とエラーが出るができているっぽい。
> docker images

○実行

docker run d p 80:80 v ./html:/var/www/html name php-test  php_test

docker run -p 8080:80 -v ./html:/var/www/html -it php_test bash

■Docker Compose
参考)Docker (とDocker Compose) を使用して環境に依存しない開発環境を構築する

○docker-compose.yml 作成

version: '3'
services: 
 php:
 image: php:7.1-apache
 volumes:
 - ./:/var/www/html
 ports:
 - 8080:80
 db:
 image: mysql:5.7
 environment:
 MYSQL_ROOT_PASSWORD: password

○起動
> cd [docker-compose.ymlのフォルダパス]
> docker-compose up -d  ・・・バックグラウンドで起動

Cannot create container for service php: b’Drive has not been shared’
とエラーが出た場合はDockerのsettingsでドライブの共有設定しておく

○確認
docker-compose ps

○接続
docker exec -it <コンテナ名> /bin/bash

○終了
docker-compose down

○ホストからHTTPアクセス
カレントフォルダにindex.phpを作成

 <? php
phpinfo();

http://localhost:8080/index.php

○PHPコンテナからDBコンテナへアクセス

<?php

 $dbh = new PDO('mysql:dbname=test;host=test_db_1', root', 'password');

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です