Usar localhost en lugar de db para el nombre de host mysql en la window acoplable

Quiero utilizar localhost cuando se utiliza en php para apuntar a la ip del contenedor mysql en lugar de apuntar a sí mismo para que pueda usar el contenedor mysql para datos.

¿Cómo puedo usar localhost en mi llamada php a mysql?

$mysqli = new mysqli("localhost", "root", "examplepass", "set", 3306); 

el código anterior no funcionará a less que use db como nombre de host.

 db: image: mariadb container_name: mariadb environment: MYSQL_ROOT_PASSWORD: examplepass www: build: ./images/www links: - db:mysql ports: - 8080:80 

¿Tengo que cambiar el file de hosts en el contenedor de alguna manera a través de Dockerfile o componer yaml?

Esto funcionará como espera, pero el www estará donde escuche (80, no 8080):

 version: "2" services: db: image: mariadb container_name: mariadb environment: MYSQL_ROOT_PASSWORD: examplepass network_mode: "host" www: build: ./images/www links: - db network_mode: "host" 

Usando network_mode: "host" , digamos, los contenedores obtienen el mismo localhost que tu host.

Configure mysql bind-address para localhost para evitar exponer mysql fuera de su host.