2017-10-11 38 views
0

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:テスト。

+0

ポート3306でリッスンしているものがローカルに(MySQLインスタンスのように)実行していますか? – jcorry

+0

私は127.0.0.1を使うべきではないと思います。 'docker inspect db | grep IPAddress'を実行し、そのアドレスを接続に使用します。 –

+0

いいえ、ローカルデータベースはインストールされていません。私はドッカーですべてを行います。 docker inspectコマンドを実行した場合(docker-composeを実行した後)、次のようになります。 "エラー:このようなオブジェクトはありません:db" – beer

答えて

0

解決済み。 まずiは

docker ps 

を経由して、実行中のMySQLのコンテナの名前/ IDを取得し、私はこのスクリーンショットのようなコマンド

docker inspect <name of container> | grep IPAddress 

からIPアドレスを得ました。

command from nigel

は、私も自分のドッキングウィンドウ-compose.ymlにこの行を変更:ナイジェル・レンと感謝へ

volumes: 
    - /var/lib/mysql:/var/lib/mysql 

感謝に答えるためjcorryします。今はすべてが機能しています。

関連する問題