-1

我想 dockerize 我的 laravel 应用程序。

我像这样启动了两个mysql和php容器

sudo docker pull mysql/mysql-server:latest
sudo docker run --name=mysql  -e MYSQL_ROOT_PASSWORD=mypass -d mysql/mysql-server:latest

sudo docker pull phpmyadmin/phpmyadmin:latest
sudo docker run --name phpmyadmin -d --link mysql:db -p 8081:80 phpmyadmin/phpmyadmin

所以我配置了我的用户并在 phpmyadmin 中手动导入了我的数据库

我使用我的 docker 文件等启动我的 laravel 容器

#一些其他代码...

EXPOSE 8000
CMD php artisan serve --host=0.0.0.0 --port=8000

我的环境文件

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:aS838/4/6V7n9VQXDUdiQBDxDiM7sWhSc1ym0KahcZY=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=root
DB_PASSWORD=mypass

如果我将 db_host 保持为 127.0.0.1 如果我将 db_host 作为 mysql(这是我正在运行的 mysql 容器名称),我会收到连接被拒绝错误你必须给你的本地网络ips,而不是我不想这样做,因为我有自己的理由解决这个问题?。任何帮助将不胜感激

4

1 回答 1

1

您应该为所有容器添加--network命令docker run,以便它们位于同一网络中,例如:

docker network create SOME_NAME
sudo docker run --network SOME_NAME --name=mysql  -e MYSQL_ROOT_PASSWORD=mypass -d mysql/mysql-server:latest
sudo docker run --network SOME_NAME --name phpmyadmin -d --link mysql:db -p 8081:80 phpmyadmin/phpmyadmin

DB_HOST应该将 的值从 更改127.0.0.1mysql

于 2021-04-12T08:31:30.737 回答