Div*_*pal 3 mysql laravel docker
我在我提到的 DockerFile 中连接到在本地机器上运行的 mysql 时遇到问题
FROM php:7
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring pdo_mysql
WORKDIR /home
COPY . /home
RUN composer install --ignore-platform-reqs
CMD php artisan serve --host=0.0.0.0 --port=8081
EXPOSE 8081
Run Code Online (Sandbox Code Playgroud)
这在我的 .env 配置中
DB_HOST=localhost
DB_DATABASE=databasename
DB_USERNAME=root
DB_PASSWORD=testpassword
Run Code Online (Sandbox Code Playgroud)
我对它失败的地方知之甚少。我还需要为 Docker 容器安装 mysql 吗?
小智 9
一个更简单的解决方案(对于 Mac OSX 和 Docker for Windows)是将主机地址替换localhost
为host.docker.internal
DB_HOST=host.docker.internal
DB_DATABASE=databasename
DB_USERNAME=root
DB_PASSWORD=testpassword
Run Code Online (Sandbox Code Playgroud)
基本上,DNS 名称host.docker.internal将解析为主机使用的内部 IP 地址。
注意:如果您将地址更改为 ,host.docker.internal但仍然收到connection refused错误消息,很可能是因为 MySQL 当前配置为仅侦听本地网络。
要解决此,请的值更新bind_address到0.0.0.0 您的my.cnf配置文件。
我看到两个选择 -
使用 docker 主机的私有 IP,即运行 mysql 服务器的位置。
如果您想使用 localhost,请在运行容器时使用主机网络模式。
docker container --net=host ...
| 归档时间: |
|
| 查看次数: |
5031 次 |
| 最近记录: |