Si su host Docker MySQL se ejecuta correctamente, puede conectarse a él desde la máquina local, pero debe especificar el host, el puerto y el protocolo de esta manera:
mysql -h localhost -P 3306 --protocol=tcp -u root
Cambie 3306 al número de puerto que ha reenviado desde el contenedor Docker (en su caso, será 12345).
Debido a que está ejecutando MySQL dentro del contenedor Docker, el socket no está disponible y necesita conectarse a través de TCP. Establecer "--protocol" en el comando mysql cambiará eso.