How to execute mysqldump command from the host machine to a mysql docker container

  docker, fedora, mysql

I want to create mysql dumps for a database which is running in docker container. However I do not want to get into the container and execute the command but do it from the host machine. Is there a way to do it. I tried few things but probably I am wrong with the commands.

docker exec -d mysql sh mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql

docker exec -d mysql sh $(mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql)

docker exec -d mysql mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql

the dumps directory is already bind to the host machine.

These commands are seems not the right way to do it or probably not the right way to do it at all. These always ends up with an error:

bash: /dumps/MyNewDump.sql: No such file or directory

But if I just run mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql inside the container it works fine.

Source: Docker Questions