Este post fue analizado por nuestros expertos así se asegura la exactitud de este ensayo.
Solución:
En lugar de iniciarlos uno por uno, use docker-compose
.
Cree un archivo docker-compose.yml
version: '2'
services:
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
ports:
# just if you also want to access it directly from you host
# node neede for phpmyadmin
- "3306:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- db
ports:
- "8080:8080"
Luego comience a usar docker-compose up
en la misma carpeta tu docker-compose.yml
se encuentra el archivo. Acceda a PHPmyadmin usando el navegador y use ‘db’ como el nombre de host de su base de datos, ya que ese es el nombre del servicio en el docker-compose.yml
archivo y, por lo tanto, se puede resolver utilizando el servicio DNS interno de los acopladores a la IP real del contenedor acoplable. Todos los enlaces se configuran para usted automáticamente.
Eso es mucho más simple: la ejecución de la ventana acoplable complica demasiado las cosas y no es práctica para esas cosas, nunca.
Sugerencia: si docker-compose no está instalado en su máquina, instálelo usando estos documentos oficiales https://docs.docker.com/compose/install/ (fuera del alcance)
El archivo de configuración de phpmyadmin/phpmyadmin (/www/config.inc.php) dice por defecto el nombre de host del servidor de la base de datos si ‘db’:
$hosts = array(‘db’);
Entonces, si el contenedor del nombre de su base de datos no es ‘db’, debe agregar la variable de entorno PMA_HOST= (o PMA_HOSTS si hay varios servidores de db) con el nombre correcto (databaseContainer en su caso)
docker run --name db -e MYSQL_ROOT_PASSWORD=mypass -d mysql:5.7
docker run -p 80:80 --link db:mysql phpmyadmin/phpmyadmin
Intente ejecutar el comando anterior, funcionará, ya que phpmyadmin puede haber codificado en su implementación que el nombre del contenedor del servidor mysql sea db.
Si aún desea darle a su servidor de base de datos un nombre único, agregue PMA_HOST
Variable ambiental:
docker run --name myadmin -d --link mysqlserver:mysql -p 8080:80 -e PMA_HOST=mysqlserver phpmyadmin/phpmyadmin
mysqlserver
es el nombre que se le da a su servidor mysql db.
Agradecemos que desees añadir valor a nuestra información aportando tu experiencia en las críticas.