docker集装箱链接,但MySQL无法连接到

我对docker工作人员相当陌生,并且为了让我的系统进行了两天的斗争。 我的撰写文件创build了nginx,php-fpm,mysql和phpmyadmin容器。 我可以把所有的容器都从对方ping出来。 但是,当我尝试从我挂载的public_html卷中安装任何东西到数据库(如安装需要在数据库中创build表的应用程序),应用程序根本无法连接到数据库。 我已经确保反复certificate是正确的。 对于我的生活,我不知道我要去哪里错了。 任何帮助将不胜感激。 我在下面列出了我的撰写文件:

version: '3' services: www: container_name: site1-www image: nginx:1.13.7-alpine expose: - "80" ports: - 8001:80 networks: datacentre: aliases: - site1www env_file: - ".env" environment: - NGINX_HOST=localhost volumes: - /mnt/www/site1.test/public_html:/usr/share/nginx/html/ - /mnt/www/site1.test/conf/default.conf:/etc/nginx/conf.d/default.conf depends_on: - db links - db phpfpm: build: ./phpfpm container_name: site1-phpfpm networks: datacentre: aliases: - site1php volumes: - /mnt/www/site1.test/public_html:/usr/share/nginx/html - /mnt/www/site1.test/conf/php.ini:/usr/local/etc/php/php.ini depends_on: - db links - db db: container_name: site1-db image: mariadb:10.3.2 ports: - 3400:3306 env_file: - ".env" environment: - MYSQL_DATABASE=test1db - MYSQL_ROOT_PASSWORD=password - MYSQL_USER=test1user - MYSQL_PASSWORD=password networks: datacentre: aliases: - site1db volumes: - /mnt/dbdata:/var/lib/mysql dbadmin: image: phpmyadmin/phpmyadmin:latest container_name: site1-dbadmin ports: - 8000:80 networks: datacentre: aliases: - site1dbadmin environment: - PMA_ARBITRARY=1 - PMA_HOST=mysql depends_on: - db links - db networks: datacentre: external: name: datacentre_net 

撰写设置看起来有点复杂的第一枪。 删除所有名称和别名,并使用服务名称进行连接。 然后从那里build立。

对于www服务,nginx应该将phpfpm:9000configuration为FastCGI worker。

您的PHP应用程序和phpMyAdmin应configuration为连接到db:3306

 version: '3' services: www: image: nginx:1.13.7-alpine ports: - 8001:80 env_file: - ".env" environment: - NGINX_HOST=localhost volumes: - /mnt/www/site1.test/public_html:/usr/share/nginx/html/ - /mnt/www/site1.test/conf/default.conf:/etc/nginx/conf.d/default.conf depends_on: - phpfpm phpfpm: build: ./phpfpm volumes: - /mnt/www/site1.test/public_html:/usr/share/nginx/html - /mnt/www/site1.test/conf/php.ini:/usr/local/etc/php/php.ini depends_on: - db db: image: mariadb:10.3.2 ports: - 3400:3306 env_file: - ".env" environment: - MYSQL_DATABASE=test1db - MYSQL_ROOT_PASSWORD=password - MYSQL_USER=test1user - MYSQL_PASSWORD=password volumes: - /mnt/dbdata:/var/lib/mysql dbadmin: image: phpmyadmin/phpmyadmin:latest ports: - 8000:80 environment: - PMA_ARBITRARY=1 - PMA_HOST=db depends_on: - db 

links不需要访问用户定义的networking上的服务。