0

Docker for Mac を使用しています。私は2つのコンテナを持っています。

1 つ目: MySQL の localhost:3306 に接続しようとしている PHP アプリケーション。

2位:MySQL

リンクを使用して実行すると、相互に到達できます。

ただし、PHP アプリケーションのコードの変更 (例: localhost を "mysql" に変更) を避け、localhost を使い続けたいと考えています。

ホストネットワーキングはうまくいくようですが、問題は、ホストネットワーキングを有効にすると、ホスト Mac のポート 80 で PHP アプリケーションにアクセスできないことです。

php アプリケーションに docker exec -it を実行して localhost をカールすると、HTML が表示されるので、ポートがホスト マシンに転送されていないように見えますか?

4

1 に答える 1

0

これは docker-compose の例です。1 つのコンテナーで 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 に答える