■イメージ作成
参考: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');