0

我正在使用 Docker for Mac。我有两个容器。

第一个:试图连接到 localhost:3306 到 MySQL 的 PHP 应用程序。

第二:MySQL

当使用链接运行时,它们能够相互访问。

但是,我想避免更改 PHP 应用程序中的任何代码(例如,将 localhost 更改为“mysql”)并继续使用 localhost。

主机网络似乎可以解决问题,问题是,当我启用主机网络时,我无法访问主机 mac 上端口 80 上的 PHP 应用程序。

如果我 docker exec -it 进入 php 应用程序并 curl localhost,我会看到 HTML,所以看起来端口只是没有转发到主机?

4

1 回答 1

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
于 2016-06-29T14:23:46.573 回答