2016-04-26 82 views
1

我想創建一個基本的開發機器運行php7,nginxmariaDB,使用docker-compose碼頭組成鏈接到mariaDB

我撰寫文件的精簡版如下:

wwwroot: 
container_name: wwwroot 
image: wwwroot 
volumes: 
    - .:/var/www 
restart: always 
nginx: 
container_name: nginx 
image: nginx 
links: 
    - php70 
volumes_from: 
    - wwwroot 
ports: 
    - "80:80" 
    - "443:443" 
restart: always 
php70: 
container_name: php70 
image: kreable/php70 
volumes_from: 
    - wwwroot 
links: 
    - mariadb 
restart: always 
mariadb: 
container_name: mariadb 
image: mariadb 
environment: 
    DB_ADMIN_PASS: pass 
ports: 
    - "3306:3306" 
restart: always 

這工作得很好,並創建所需的容器。嘗試將基本PHP腳本連接到數據庫時出現問題。我總是得到:

SQLSTATE[HY000] [2002] Connection refused

我的PHP應用程序在wwwroot容器。

我是否有進一步的配置允許我的PHP應用程序連接到mariaDB容器?

謝謝。

回答

0

查看您的代碼,您已設置從php70mariadb容器的鏈接,但在wwwroot容器中沒有。如果您嘗試從您的wwwroot容器連接,那麼您還需要從那裏添加一個鏈接到mariadb。或者它看起來像你可能想要連接到你的php70容器。

此外,它可能很好顯示您正在使用的PHP代碼嘗試連接到mariadb,這是導致錯誤。

+0

php腳本是一個簡單的基於PDO的連接。我試圖用'root'和'pass'作爲用戶名/密碼連接到'127.0.0.1'。 – user1970557

+0

您可以將該代碼片段添加到您的問題中,它可以更容易地查看您是否在該代碼中存在錯誤。另外,你不應該試圖連接到'127.0.0.1',你應該試圖連接到'mariadb',因爲localhost不會讓你離開容器,並且docker將創建一個名爲mariadb的dns別名,它將鏈接到mariadb容器。另外,請確保您使用的是正確的端口3306。 –