Uma forma muito simples de resolver o problema de autorização de conexão em um container MySQL no Docker é verificando se o usuário root possui acesso % no MySQL.
mysql> SELECT host, user FROM mysql.user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
Veja que nas entradas do MySQL acima não há acesso % que significa anywere. Caso você tenha este cenário no seu ambiente tente o seguinte comando:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password-root';
Com isto você acrecenta acesso de qualquer lugar para o usuário root.