我想为在 docker 容器中运行的数据库创建 mysql 转储。但是,我不想进入容器并执行命令,而是从主机执行此操作。有没有办法做到。我尝试了一些东西,但可能我的命令是错误的。
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
目录已经绑定到主机。
这些命令似乎不是正确的方法,或者可能根本不是正确的方法。这些总是以错误结束:
bash: /dumps/MyNewDump.sql: 没有这样的文件或目录
但如果我只是跑mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql
在容器内它工作正常。
这对我有用(只需替换容器 ID):
docker exec 1d3595c0ce87 sh -c 'mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql'
mysqldump: [Warning] Using a password on the command line interface can be insecure.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)