docker-containerを設定しようとしています:Apache/PHP7/Mysql 5.7をdocker経由で実行すると、Ubuntu 16.04Docker(Ubuntu 16.04)Apache/PHP7/Mysql5_7 - データベース:接続に失敗しました:接続が拒否されました
問題は、私がindex.php(localhost:8080)からデータベース接続を取得しないということです。 接続しようとすると「Connection failed:Connection refused」と表示されます。
のApache-PHP7のdockerfile:https://github.com/nimmis/docker-apache-php7/blob/master/Dockerfile
フォルダは、(Dockerfile含む)
アパッチ-PHP7
のMySQL(MySQLのデータ)(index.phpを含む)
HTML
ドッカー - コンパス.yml:
version: '2'
services:
php:
build: apache_php7
container_name: apache_php7
ports:
- "8080:80"
- "443:443"
volumes:
- ./html:/var/www/html
links:
- db
db:
image: mysql:5.7
container_name: mysql_5_7
volumes:
- ./mysql:/var/lib/mysql
ports:
- "127.0.0.1:3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_USER=admin
- MYSQL_PASSWORD=test
- MYSQL_DATABASE=database
のindex.php(PHP-スニペット)
<?php
$servername = "127.0.0.1";
$username = "admin";
$password = "test";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
私は似たスレッドを検索しPHP-PDOなどでもこれを試してみました - 何も仕事をしたん。
私はコマンドでターミナルを経由して、手動でのmysql-コンテナにログインすることができるよ。 "MySQLの-uルート-p" を経由して ドッキングウィンドウのexec -it bashの、 およびログイン - > passwort:テスト。
ポート3306でリッスンしているものがローカルに(MySQLインスタンスのように)実行していますか? – jcorry
私は127.0.0.1を使うべきではないと思います。 'docker inspect db | grep IPAddress'を実行し、そのアドレスを接続に使用します。 –
いいえ、ローカルデータベースはインストールされていません。私はドッカーですべてを行います。 docker inspectコマンドを実行した場合(docker-composeを実行した後)、次のようになります。 "エラー:このようなオブジェクトはありません:db" – beer