我正在使用Docker for Mac。我有两个容器。
1st:正在尝试连接到localhost的PHP应用程序:3306到MySQL。
第二名:MySQL
使用链接运行时,他们可以互相联系。
但是,我想避免更改PHP应用程序中的任何代码(例如,将localhost更改为“mysql”)并继续使用localhost。
主机网络似乎可以解决问题,问题是,当我启用主机网络时,我无法访问主机mac上端口80上的PHP应用程序。
如果我将docker exec -it放入php应用程序并卷曲localhost,我会看到HTML,所以看起来端口只是没有转发到主机?
答案 0 :(得分:0)
这是docker-compose的一个例子 它在一个容器中运行mysql而在另一个容器中运行phpmyadmin 容器连在一起 您可以通过端口上的主机访问容器 3316和8889
my_mysql:
image: mysql/mysql-server:latest
container_name: my_mysql
environment:
- MYSQL_ROOT_PASSWORD=1234
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
ports:
- 3316:3306
restart: always
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: my_myadmin
links:
- my_mysql:my_mysql
environment:
- PMA_ARBITRARY=0
- PMA_HOST=my_mysql
ports:
- 8889:80
restart: always