No se puede resolver el nombre de host en Docker Desktop Windows.
He configurado docker-compose para ejecutar phpmyadmin y mysql. Aquí está mi docker-compose.yml:
version: "3.9"
networks:
local_web_network:
driver: bridge
volumes:
mysql_data:
driver: local
services:
mysql:
image: mysql:8.0
container_name: local_mysql
restart: always
tty: true
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_DATABASE: local_master
MYSQL_ROOT_PASSWORD: secret
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
volumes:
- mysql_data:/var/lib/mysql
networks:
- local_web_network
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: local_phpmyadmin
restart: always
tty: true
ports:
- "8083:80"
environment:
PMA_HOST: local_mysql
PMA_ABSOLUTE_URI: http://db.test
MYSQL_ROOT_PASSWORD: secret
networks:
- local_web_network
extra_hosts:
- 'db.test:127.0.0.1'
He configurado el archivo hosts de Windows con la siguiente configuración:
127.0.0.1 db.test
He ejecutado correctamente los contenedores de Docker sin errores. He intentado acceder a la página http://127.0.0.1:8083` o
http://db.test:8083` y funciona, muestra la página de inicio de sesión de phpmyadmin.
Pero el problema es que no puedo acceder a la página sin especificar el puerto, es decir, `http://db.test`. ¿Cómo puedo hacer que funcione sin especificar el puerto?
davy.ai
Para acceder a la página de phpmyadmin sin especificar el puerto, puedes modificar el archivo docker-compose.yml para usar el puerto 80 en lugar del puerto 8083. Deberías cambiar la siguiente línea:
a
Luego podrías acceder a la página de phpmyadmin en
http://db.test` en lugar de
http://db.test:8083`.Alternativamente, puedes configurar tu servidor web (como Apache o Nginx) para redirigir las solicitudes de
db.test
a127.0.0.1:8083
.