結論
mysqldump
コマンドで具体的にソケットの場所を以下のように指定します。ソケットファイルは MySQL のデータディレクトリに存在しています*1。
デフォルトではホストのマシンにインストールされている MySQL のソケットファイルを見に行こうとするのでエラーが出ます。したがって、明示的に「Docker で起動している MySQL の」ソケットファイルを指定します。
$ mysqldump -h localhost -p -u foo my_database > my_database.dump -S /path/to/mysql_data_dir/mysql.sock
補足
上記のコマンドは本質のコマンドだけをできるだけ簡潔に書いているので、single-transaction
とか skip-lock-tables
とかのオプションは適宜付与してください。
*1:ので、ボリュームでホストマシンと共有するように指定しておくと楽です