Docker – Ubuntu – Nginx – MariaDB – 连接被拒绝

我试图build立与Docker的OSXdocker集装箱 – Ubuntu的 – Nginx的 – MariaDB运行一个Laravel应用程序

我的docker设置是:

version: "2" services: nginx: build: context: ./nginx ports: - "8080:80" volumes: - ./app:/var/app fpm: build: context: ./fpm volumes: - ./app:/var/app expose: - "9000" environment: - "DB_HOST=db" - "DB_DATABASE=laravel_db" db: image: mariadb ports: - "33061:3306" environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=laravel_db volumes: - ./database:/var/lib/mysql 

和2个docker文件:

 FROM nginx ADD ./default.conf /etc/nginx/conf.d/ RUN echo "daemon off;" >> /etc/nginx/nginx.conf CMD service nginx start 

 FROM ubuntu:latest RUN apt-get update && apt-get install -y software-properties-common language-pack-en-base \ && LC_ALL=en_US.UTF-8 add-apt-repository -y ppa:ondrej/php \ && apt-get update \ && apt-get install -y php7.0 php7.0-fpm php7.0-mysql mcrypt php7.0-gd curl \ php7.0-curl php-redis php7.0-mbstring sendmail supervisor \ && mkdir /run/php \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf RUN sed -i -e 's/listen = \/run\/php\/php7.0-fpm.sock/listen = 0.0.0.0:9000/g' /etc/php/7.0/fpm/pool.d/www.conf \ && sed -i -e 's/;daemonize = yes/daemonize = no/g' /etc/php/7.0/fpm/php-fpm.conf WORKDIR /var/app EXPOSE 9000 CMD ["/usr/bin/supervisord"] 

到现在为止还挺好。 我可以以localhost:8080的身份访问Laravel应用程序主页,并使用Sequel Pro访问MySQL数据库。

但是当访问需要数据库查询的Laravel路由时,它返回“连接被拒绝”

然后我创build一个原始的PHP文件来进行数据库连接testing:

 $link = mysqli_connect('127.0.0.1', 'root', 'root', 'laravel_db', 33061); if(!$link) { die('failed to connect to the server: ' . mysqli_connect_error()); } 

而且我也连接拒绝错误。

我尝试使用127.0.0.1和本地主机,但没有希望。

试图谷歌它,但大多数的答案是关于端口不公布…

谢谢

在使用docker-compose时,您需要使用link指令来连接各种Docker容器。 也就是说,如果您希望docker集装箱A与docker集装箱B进行通信,则需要“链接”

docker工人撰写关于链接的文档