【发布时间】:2017-12-04 22:40:42
【问题描述】:
我对 docker 还是很陌生,为了让我的系统正常运行,我已经奋斗了两天。我的 compose 文件创建了 nginx、php-fpm、mysql 和 phpmyadmin 容器。我可以互相ping通所有容器。但是,当我尝试将安装的 public_html 卷中的任何内容安装到数据库中时(例如安装需要在数据库中创建表的应用程序),该应用程序根本无法连接到数据库。我已经确保一遍又一遍的凭据是正确的。对于我的生活,我不知道我要去哪里错了。任何帮助将不胜感激。我在下面包含我的撰写文件:
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
【问题讨论】:
-
请检查您的链接配置是
links还是links: -
很可能您的“应用程序”没有连接到端口 3400?
-
@Forbs docker 网络上的 3306 端口
-
访问用户定义网络上的服务不需要链接
标签: php mysql docker nginx dockerfile