适用于Mac主机网络的Docker

时间:2016-06-29 14:06:20

标签: docker docker-compose docker-networking

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

1st:正在尝试连接到localhost的PHP应用程序:3306到MySQL。

第二名:MySQL

使用链接运行时,他们可以互相联系。

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

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

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

1 个答案:

答案 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