我正在嘗試將現有專案移至 Docker。我在M.Academy遵循了本教程,并遵循了Docker on Existing Project的設定說明
在執行嘗試連接 MySQL 時,我收到此錯誤ERROR 2002 (HY000): Can't connect to MySQL server on 'db' (115)
我也嘗試執行: telnet db 3306
回應:嘗試 172.17.0.1... telnet:無法連接到遠程主機:連接超時
我嘗試了一切,但無法弄清楚問題所在。我是 Docker 的新手。我正在使用 Ubuntu 18.04 LTE。沒有更改 db.env 并且在匯入資料庫之前的任何其他步驟都沒有錯誤。
我進一步檢查,發現容器無法與MySQL建立連接。
PS我能夠通過使用(外部MySQL埠)成功連接到Docker容器外的相同MySQL服務 mysql -h 127.0.01 -u root -p -P 3306
重現步驟
- 在 Ubuntu 18.04 上安裝 Docker 和 Docker Compose
- 下載 Docker Compose 模板:
curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/template | bash - 替換為現有 Magento 實體的現有源代碼:
cp -R ~/Sites/existing src - 執行:
docker-compose -f docker-compose.yml up -d - 將檔案復制到容器:
bin/copytocontainer --all - 匯入現有資料庫:
bin/mysql < /var/www/magento243.sql
應已成功匯入預期結果資料庫
實際結果 錯誤 2002 (HY000):無法連接到 MySQL 服務器上的 'db' (115)
PS問題已經在這里提出:https : //github.com/markshust/docker-magento/issues/589
docker-compose.yml
version: "3"
services:
app:
image: markoshust/magento-nginx:1.18-5
ports:
- "80:8000"
- "443:8443"
depends_on:
- "db"
volumes: &appvolumes
- ~/.composer:/var/www/.composer:cached
- ~/.ssh/id_rsa:/var/www/.ssh/id_rsa:cached
- ~/.ssh/known_hosts:/var/www/.ssh/known_hosts:cached
- appdata:/var/www/html
- sockdata:/sock
- ssldata:/etc/nginx/certs
extra_hosts: &appextrahosts
## M1 Mac support to fix Docker delay, see #566
- "app:172.17.0.1"
- "phpfpm:172.17.0.1"
- "db:172.17.0.1"
- "redis:172.17.0.1"
- "elasticsearch:172.17.0.1"
- "rabbitmq:172.17.0.1"
## Selenium support, replace "magento.test" with URL of your site
- "magento.test:172.17.0.1"
phpfpm:
image: markoshust/magento-php:7.4-fpm-11
volumes: *appvolumes
extra_hosts: *appextrahosts
env_file: env/phpfpm.env
db:
image: mariadb:10.4
command: --max_allowed_packet=256M
ports:
- "3306:3306"
env_file: env/db.env
volumes:
- dbdata:/var/lib/mysql
extra_hosts: *appextrahosts
redis:
image: redis:5.0-alpine
ports:
- "6379:6379"
extra_hosts: *appextrahosts
elasticsearch:
image: markoshust/magento-elasticsearch:7.9.3-1
ports:
- "9200:9200"
- "9300:9300"
environment:
- "discovery.type=single-node"
## Set custom heap size to avoid memory errors
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
## Avoid test failures due to small disks
## More info at https://github.com/markshust/docker-magento/issues/488
- "cluster.routing.allocation.disk.threshold_enabled=false"
- "index.blocks.read_only_allow_delete"
extra_hosts: *appextrahosts
rabbitmq:
image: rabbitmq:3.8.22-management-alpine
ports:
- "15672:15672"
- "5672:5672"
volumes:
- rabbitmqdata:/var/lib/rabbitmq
environment:
- RABBITMQ_VM_MEMORY_HIGH_WATERMARK=1GB
extra_hosts: *appextrahosts
mailcatcher:
image: sj26/mailcatcher
ports:
- "1080:1080"
extra_hosts: *appextrahosts
## Selenium support, uncomment to enable
#selenium:
# image: selenium/standalone-chrome-debug:3.8.1
# ports:
# - "5900:5900"
# extra_hosts: *appextrahosts
volumes:
appdata:
dbdata:
rabbitmqdata:
sockdata:
ssldata:
uj5u.com熱心網友回復:
這個問題終于被解決了
- 從 YML 檔案中洗掉extra_hosts條目
- 在 YML 中添加網路
最終docker-compose.yml
version: "3"
services:
app:
image: markoshust/magento-nginx:1.18-5
ports:
- "81:8000"
- "444:8443"
depends_on:
- "db"
volumes: &appvolumes
- ~/.composer:/var/www/.composer:cached
- ~/.ssh/id_rsa:/var/www/.ssh/id_rsa:cached
- ~/.ssh/known_hosts:/var/www/.ssh/known_hosts:cached
- appdata:/var/www/html
- sockdata:/sock
- ssldata:/etc/nginx/certs
networks:
- customNetwork
phpfpm:
image: markoshust/magento-php:7.4-fpm-11
volumes: *appvolumes
env_file: env/phpfpm.env
networks:
- customNetwork
db:
image: mariadb:10.4
command: --max_allowed_packet=256M
ports:
- "3307:3306"
env_file: env/db.env
volumes:
- dbdata:/var/lib/mysql
networks:
- customNetwork
redis:
image: redis:5.0-alpine
ports:
- "6379:6379"
networks:
- customNetwork
elasticsearch:
image: markoshust/magento-elasticsearch:7.9.3-1
ports:
- "9201:9200"
- "9301:9300"
environment:
- "discovery.type=single-node"
## Set custom heap size to avoid memory errors
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
## Avoid test failures due to small disks
## More info at https://github.com/markshust/docker-magento/issues/488
- "cluster.routing.allocation.disk.threshold_enabled=false"
- "index.blocks.read_only_allow_delete"
networks:
- customNetwork
rabbitmq:
image: rabbitmq:3.8.22-management-alpine
ports:
- "15672:15672"
- "5672:5672"
volumes:
- rabbitmqdata:/var/lib/rabbitmq
environment:
- RABBITMQ_VM_MEMORY_HIGH_WATERMARK=1GB
networks:
- customNetwork
mailcatcher:
image: sj26/mailcatcher
ports:
- "1080:1080"
networks:
- customNetwork
volumes:
appdata:
dbdata:
rabbitmqdata:
sockdata:
ssldata:
networks:
customNetwork:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/381309.html
