ホストOS から Docker の MySQLコンテナにログインする場合、以下の方法があります。
他のコンテナ同様、docker-compose で MySQL コンテナに直接ログインします。
$ docker-compose exec コンテナ名 bash
コンテナ名が mysql だった場合
$ docker-compose exec mysql bash
Docker コンテナにログインしたら、MySQL にログインします。
# mysql -u root -p
この方法は、docker-compose が動作するパスで実行する必要があり、MySQL コンテナ内でも mysql でログインします。
次にホスト OS から mysql コマンドでログインしてみます。
つまりは、Docker の MySQL を外部ホストでログインする方法です。
$ mysql -u root -p -h localhost -P 3306 --protocol=tcp
mysql で localhost を指定すると自分の PC を指すため、--protocol で TCP ソケットを指定する必要があります。