Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

mysql disponivel dentro do docker

Olá gostaria de uma ajuda.

como posso ter acesso ao meu mysql que está instalado no meu computador a partir do docker estou utilizando o docker-compose

a idéia é que o meu container tenha acesso ao banco instalado na maquina host.

alguém tem alguma dica?

3 respostas

Olá, André!

Entendo que você quer acessar o MySQL que está instalado na sua máquina host a partir de um container Docker, certo?

Bom, a primeira coisa que você precisa saber é que o Docker, por padrão, isola os containers do resto do sistema. Isso significa que, a menos que você especifique o contrário, seu container não terá acesso ao MySQL instalado na sua máquina host.

No entanto, existe uma maneira de fazer isso. Você pode usar a rede host do Docker para permitir que seu container se comunique com o MySQL na sua máquina host. Aqui está como você pode fazer isso no seu arquivo docker-compose:

version: '3'
services:
  myservice:
    image: myimage
    network_mode: "host"

Neste exemplo, myservice é o nome do seu serviço e myimage é a imagem Docker que você está usando. A linha network_mode: "host" diz ao Docker para usar a rede host, o que permitirá que seu container se comunique com o MySQL na sua máquina host.

Depois de fazer essa alteração, você deve ser capaz de acessar o MySQL na sua máquina host a partir do seu container Docker usando localhost como o hostname.

Lembre-se, essa é uma solução que pode funcionar, mas pode não ser a mais adequada para todos os cenários, pois expõe todo o sistema de rede do host para o container. Uma alternativa seria rodar o MySQL também em um container e fazer a comunicação entre eles.

Espero ter entendido e conseguido ajudar. Qualquer coisa manda aqui. Bons estudos!

Respondendo sua pergunta: Sim eu quero acessar o MySQL que está instalado na sua máquina host.

já testei esse procedimento como citado mais gera vários erros e a conexão não funciona.

ERROR: for 487484daf452_php-fpm_1  "host" network_mode is incompatible with port_bindings

ERROR: for php-fpm  "host" network_mode is incompatible with port_bindings
Traceback (most recent call last):

meu docker-composer

version: '3'
services:
    php-fpm:
        build: .
        working_dir: /var/www/html/
        volumes:
            - '/var/www/html//app:/var/www/html/'
        ports:
            - '80:80'
        network_mode: "host"

o build é um dockerfile

solução!

Resolvido. precisei só alterar as configurações do meu docker-compose

version: "3.9"
services:
    app:
        container_name: app
        build: .
        working_dir: /var/www/html/www
        volumes:
            - '/app:/var/www/'
        network_mode: host

funcionou perfeitamente. Pelo que entendi apenas removi as configurações de porta e tudo funcionou de acordo. agora consigo acesso ao meu banco no host de forma simples usando 127.0.0.1

thanks