大佬教程收集整理的这篇文章主要介绍了php-从Docker容器使用localhost连接到MariaDB,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,我确实阅读了那些链接
> Connect to Docker MySQL container from localhost?
> Connect to Mysql on localhost from docker container
> From inside of a Docker container, how do I connect to the localhost of the machine?
但是作为docker的初学者.它没有帮助我.
您需要了解的内容:
>是的,我需要本地主机.我正在开发一个可以交互的应用程序
直接与数据库.它创建/删除用户权限,并
允许某些用户从远程以有限的权限访问
访问.初始化后,该应用程序将放弃对root和伪造用户的默认远程访问,并授予他们对localhost的完全特权.
>我正在使用https://phpdocker.io生成的docker-compose.yml
> Ubuntu 18.10
> Docker版本18.09.3,内部版本774a1f4
> docker-compose版本1.21.0,版本未知
>我仅将docker用于开发目的.在生产中,我使用forge
./docker-compose.yml
###############################################################################
# Generated on phpdocker.io #
###############################################################################
version: "3.1"
services:
mailhog:
image: mailhog/mailhog:latest
container_name: myapp-mailhog
ports:
- "8081:8025"
redis:
image: redis:alpine
container_name: myapp-redis
mariadb:
image: mariadb:10.4
container_name: myapp-mariadb
working_dir: /application
volumes:
- .:/application
environment:
- MysqL_ROOT_password=root
- MysqL_DATABASE=myapp
- MysqL_USER=forge
- MysqL_password=forge
ports:
- "8083:3306"
webserver:
image: Nginx:alpine
container_name: myapp-webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/Nginx/Nginx.conf:/etc/Nginx/conf.d/default.conf
ports:
- "8080:80"
php-fpm:
build: phpdocker/php-fpm
container_name: myapp-php-fpm
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini
./phpdocker/Nginx/Nginx.conf
server {
listen 80 default;
client_max_body_size 108M;
access_log /var/log/Nginx/application.access.log;
root /application/PUBLIC;
index index.php;
if (!-e $request_fileName) {
rewrite ^.*$/index.php last;
}
LOCATIOn ~ \.php${
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILename $document_root$fastcgi_script_name;
fastcgi_param php_VALUE "error_log=/var/log/Nginx/application_php_errors.log";
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
include fastcgi_params;
}
}
./phpdocker/php-fpm/Dockerfile(稍作修改以添加MysqL_client而不在第二个RUN命令中安装git)
FROM phpdockerio/php73-fpm:latest
workdir "/application"
# Fix debconf warnings upon build
ARG DEBIAN_FRONTEND=noninteractive
# Install SELEcted extensions and other stuff
RUN apt-get update \
&& apt-get -y --no-install-recommends install \
php7.3-MysqL php-redis php7.3-sqlite3 php-xdebug php7.3-bcmath php7.3-bz2 php7.3-gd \
git \
MysqL-client \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
upload_max_filesize = 100M
post_max_size = 108M
我尝试使用Network_mode:host,但它使Web服务器停止在1号出口处
解决方法:
好的,但是请记住,MysqL / mariadb中的localhost意味着可以通过本地unix套接字进行访问.有在容器之间共享这些的方法.
在这里看看Connection between docker containers via UNIX sockets
以上是大佬教程为你收集整理的php-从Docker容器使用localhost连接到MariaDB全部内容,希望文章能够帮你解决php-从Docker容器使用localhost连接到MariaDB所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。