我正在嘗試設(shè)置一個(gè)基本的 LAMP 堆棧,但在容器運(yùn)行時(shí)docker-compose無法使用它連接到mariadb數(shù)據(jù)庫。phpmyadmin為了嘗試解決該問題,我將docker-compose.yaml文件剝離為:version: '3.2' services: db: image: mariadb container_name: appsDB restart: always ports: - '6603:3306' environment: MYSQL_ROOT_PASSWORD: secret app: depends_on: - db image: phpmyadmin/phpmyadmin container_name: phpmyadmin restart: always ports: - '8080:80' environment: PMA_HOST: db當(dāng)我運(yùn)行容器時(shí),我可以導(dǎo)航到該phpmyadmin頁面,但是當(dāng)我輸入root/secret用戶名/密碼時(shí),我收到錯(cuò)誤: Cannot log in to the MySQL server mysqli::real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known為了確保這不是我的計(jì)算機(jī)的問題,我還運(yùn)行了docker-compose up數(shù)據(jù)庫映像,并將其更改為mysql并保持所有其他細(xì)節(jié)相同。root/secret然后就沒有問題了:phpmyadmin 工作正常,我可以使用上一個(gè)圖像中使用的相同憑據(jù)正常登錄。誰能告訴我為什么mariadb會(huì)這樣,有什么方法可以通過 docker 容器中的 phpmyadmin 訪問它嗎?
1 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
您是否正在使用過時(shí)版本的圖像/容器?你的 docker-compose.yml 對我來說工作得很好(我的 Docker 版本是 19.03.8,我認(rèn)為這并不重要)。
我首先嘗試強(qiáng)制它重新創(chuàng)建整個(gè)堆棧docker-compose up --force-recreate
。我注意到您將此文件稱為docker-compose.yaml
但正確的默認(rèn)擴(kuò)展名應(yīng)該是 .yml;如果你曾經(jīng)使用 .yml 文件創(chuàng)建它(或者通過直接向 docker-compose 指定文件名),我可以想象 Docker 會(huì)默默地(或者至少不明顯地)無法重建新文件,所以雙重 -還要檢查文件名。
如果這不起作用,我建議進(jìn)入 phpMyAdmin 容器的 shell 并嘗試一些網(wǎng)絡(luò)命令,看看是否可以直接連接;例如安裝mariadb-client
包并嘗試mysql -u root -h db -p
。
- 1 回答
- 0 關(guān)注
- 295 瀏覽
添加回答
舉報(bào)
0/150
提交
取消