El contenedor Docker se conecta a la database MySQL localmente -> networkingirige a otro contenedor

Soy nuevo en Docker.

He leído que es mejor mantener una aplicación por contenedor.

Necesito ejecutar la aplicación web (stack LAMP). Así que encontré el contenedor para ejecutar PHP + Apache.

Ahora necesito configurar un contenedor mysql. Pero no estoy seguro de cuál es la forma correcta de hacerlo.

Leí que es posible conectar varios contenedores juntos.

La idea es hacer que sea transparente para el contenedor que ejecuta PHP + Apache cuando intenta conectarse a la database mysql localmente.

Pero networkingirige todas las conexiones locales a otro contenedor.

Otra idea que tengo es proporcionar una variable de entorno con host donde deberían ir todas las conexiones. En este caso, necesito tener un server mysql accesible públicamente, pero debo mantenerlo privado y accesible solo localmente.

¿Podría sugerir una mejor opción para elegir en mi caso?

Gracias

Use docker-compose :

Por ejemplo, comience desde este docker-compose.yml . Ponlo en el mismo directory que tu file php Dockerfile:

 version: "3" services: web: build: . ports: - 8000:80 depends_on: - db db: image: mysql environment: - MYSQL_ROOT_PASSWORD=something volumes: - ./mysql-data:/var/lib/mysql 

Entonces:

 docker-compose up 

Así que gracias a la networking Docker, puede apuntar desde su PHP como este: db:3306 .