如果我从容器本身加载mysql dump还是使用docker exec -i
从外部加载它,有什么明显的区别?
答案 0 :(得分:0)
这两个路径在功能上是相同的:您正在同一数据库上运行相同的SQL命令。通常,如果有另一种方式来做您需要做的事情,特别是与可访问网络的服务进行交互,我建议避免使用docker exec
。
运行mysql
客户端需要安装与数据库进行交互所需的普通工具,完成此操作后,您可以以非特权用户身份进行操作。您甚至可以从其他主机上进行操作。您永远不会对文件是位于主机文件系统空间还是容器文件系统空间中感到困惑。
docker exec
需要在主机上具有根级特权(如果可以docker exec
,那么还可以docker run -v/:/host ...
并在主机上更改任何内容)涉及在数据库服务器上获得root shell。对于普通的行政操作,这都不是最佳实践。