Cómo conectar una base de datos MySQL alojada localmente con el contenedor Docker

Prateek Naik:

A través de docker-compose.ymlpuedo ejecutar la aplicación. Ahora queremos mover la aplicación a producción, pero no queremos usar la base de datos del contenedor. Entonces, ¿hay alguna forma de que pueda conectar mi base de datos MySQL local con la aplicación que usa docker-compose?

Mi docker-compose.yml se ve así:

version: '3'
services:
  web-app:
    build:
      context: .
      dockerfile: web-app/Dockerfile
    ports:
      - 8080:8080
    links:
      - app-db

  app-db:
    build:
      context: .
      dockerfile: app-db/Dockerfile

    environment:
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_DATABASE=Optimize
    ports:
      - 3306:3306

En lugar de app-dbparte, solo quiero conectarme a mi mysqlbase de datos alojada localmente .

Robert:

Busque la ip de la máquina host en la red de Docker. Si utiliza ventana acoplable-compose.yml version: "3"es probable que sea que esa IP es: 172.18.0.1, pero confirman que la búsqueda de la "entrada" de su contenedor (el anfitrión):

docker inspect <container-id-or-name> | grep Gateway
"Gateway": "",
            "IPv6Gateway": "",
            "Gateway": "172.18.0.1",
            "IPv6Gateway": "",

Entonces, dentro de su aplicación Docker, apunte a MySQL como esto: 172.18.0.1:3306(tal vez en un archivo de configuración). Tenga en cuenta que esa IP es fija siempre que la red de la ventana acoplable siga siendo la misma (la red la crea la ventana acoplable-compose y no se elimina a menos que usted lo haga docker-compose down)

Además, verifique que su MySQL esté escuchando todas sus interfaces. En su my.cnfbúsqueda, bind-addressdebería ser 0.0.0.0(considere los problemas de seguridad si su servidor tiene una IP pública).


Como alternativa, puede traer al contenedor la misma red que su host, para compartir el localhost, por lo que el contenedor encontrará mysql allí. Utilice el modo de red como "host":

version: '3'
services:
  web-app:
    build:
      context: .
      dockerfile: web-app/Dockerfile
    ports:
       - 8080:8080
    network_mode: "host"

Luego, apunte en su hibernate.propertiesmysql como este:localhost:3306

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cómo conectar la aplicación Django alojada localmente a la base de datos Dockerized Postgres

¿Cómo puedo inicializar una base de datos MySQL con esquema en un contenedor Docker?

Cómo conectarse a localhost y a una base de datos externa desde el contenedor de Docker

¿Cómo una aplicación en el contenedor Docker accede a la base de datos en Windows?

¿Cómo conectar Flyway que se ejecuta en un contenedor Docker a una base de datos que se ejecuta en un contenedor Docker?

Cómo agregar una base de datos localmente en el proyecto NetStandard2.0 con VS2017

Cómo conectar dbeaver con la instancia de docker de mysql localmente

No se puede conectar a la base de datos de Postgres desde el contenedor de Golang Docker

cómo conectar mi contenedor docker (frontend) conectarse a una base de datos en contenedores que se ejecuta en una máquina virtual diferente

El contenedor MySQL de Docker no crea un usuario con contraseña cuando se especifica con la base de datos

Cómo conectarse a una base de datos mysql en localhost desde un script de Python en un contenedor Docker

¿Cómo especificar una base de datos de contenedor de Docker en una aplicación que se ejecuta en Docker con docker-compose.yml?

No se puede conectar a la base de datos MySQL en el contenedor de la ventana acoplable

¿Cómo conectar su base de datos firebase a la base de datos mysql con flutter?

Cómo conectar una aplicación ios con la base de datos mysql usando Python en lugar de PHP

¿Cómo creo una base de datos postgre SQL localmente con DataGrip?

cómo conectar el servidor mysql del contenedor de Docker remoto

No se puede conectar a la base de datos desde el contenedor

¿Cómo obtener una base de datos compatible con mariadb desde el motor de base de datos mysql?

¿Cómo creo una base de datos MYSQL localmente usando la carpeta de la base de datos descargada de github?

¿Cómo conectarse a una base de datos de SQL Server dentro de un contenedor Docker?

¿Cómo conectarse a una base de datos de SQL Server dentro de un contenedor Docker?

¿Cómo consultar una base de datos de Pervasive v13 desde un contenedor Docker?

El contenedor Mariadb Docker se niega a inicializarse con el esquema de la base de datos

¿Cómo ejecutar servicios de base de datos en el contenedor Docker?

Cómo conectar el contenedor Docker a mongodb

Problema de conectividad de la base de datos con el contenedor de Docker Linux

¿Cómo crear un contenedor de datos guardados de MySQL en una imagen de Docker?

Cómo conectar mi aplicación con el servidor de la base de datos

TOP Lista

CalienteEtiquetas

Archivo