簡體   English   中英

Docker PHP容器無法連接到MariaDB容器

[英]Docker PHP Container Cannot Connect To MariaDB Container

我正在使用docker通過以下命令在單獨的容器中啟動Nginx,PHP和mariaDB:

# DB
docker run  --name db -d -p 3306:3306 --restart=always -v /opt/db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=<pass> -e MYSQL_USER=dbuser -e MYSQL_PASSWORD=<pass> mariadb

# PHP
docker run --name php -p :9000 -d --restart=always --link=db:db -v /www:/data php:fpm

# WEB
docker run --name web -d -p 80:80 --link php --link=db:db -v /www:/data -v /opt/nginx/default.conf:/etc/nginx/conf.d/default.conf nginx:latest

(當然,我已經填好了我的密碼)到目前為止,到目前為止,在本地運行了一個旋轉的Nginx,我可以在http:// localhost上正確顯示的www文件夾中看到index.htm和phpinfo.php。

接下來,我創建了一個dbcheck.php頁面,其中包含以下內容:

<?php
$dbh = mysqli_connect('localhost', 'dbuser', '<pass>');
if (!$dbh) {
    die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully to MariaDB database';
mysqli_close($dbh);
?>

結果是PHP沒有安裝MySQL擴展。 我在做什么錯和/或如何安裝MySQL擴展(以及在哪里安裝)

請使用db的主機名,而不是localhost 因此,代碼將像這樣

$dbh = mysqli_connect('db', 'dbuser', '<pass>');

因為使用此選項--link=db:db將php容器與mariadb容器鏈接在一起。 這意味着您鏈接到db容器,並將其命名為db 因此,php容器只知道db為mariadb容器的主機名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM