With things like homebrew
you kind of forget that you’re not on Linux, and some things might actually work differently. Trying to connect to a host database server from the container using 172.17.0.1
didn’t work out.
After few hours, figuring out that everything’s setup right, you’re not going crazy, you stumble upon this note:
The host has a changing IP address (or none if you have no network access). From 18.03 onwards our recommendation is to connect to the special DNS name
host.docker.internal
, which resolves to the internal IP address used by the host. This is for development purpose and will not work in a production environment outside of Docker Desktop for Mac.The gateway is also reachable as
gateway.docker.internal
.
And everything works like charm:
[root@e70e59cdb3c3 /]# ping host.docker.internal
PING host.docker.internal (192.168.65.2) 56(84) bytes of data.
64 bytes from 192.168.65.2 (192.168.65.2): icmp_seq=1 ttl=37 time=0.951 ms
[root@e70e59cdb3c3 /]# mysql -u root -h host.docker.internal -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 350