O container, por padrão, não permite que ninguém faça login no servidor como root de fora do container. Isso impede que outros contêineres (ou o host também) se conectem ao banco de dados (usando credenciais raiz). Você pode usar o sinalizador MYSQL_ROOT_HOST para passar o IP do contêiner ou host que deve ter permissão para se conectar ao servidor com credenciais de root. Por exemplo. Para permitir que o host se conecte, você deve definir
MYSQL_ROOT_HOST="172.17.0.1
". Também vejo que você criou apenas o usuário root, mas na string de conexão você usa
userid=user
. Você pode usar server=127.0.0.1
como nome de host.