如何从Docker容器文件系统导入SQL文件?解决路径识别错误
解决Docker容器内SQL文件导入的路径问题
问题核心是命令的重定向逻辑: < /path/to/database.sql 由本地主机的Shell解析处理,系统会去主机文件系统查找文件,而非容器内部的文件系统。
要让命令读取容器内的SQL文件,可采用以下方案:
方案一:让容器内的Shell处理重定向
将整个导入命令用单引号包裹,交给容器内的Shell执行,重定向操作就会在容器内部完成,从而读取容器内的文件路径:
docker exec $DB_CONTAINER sh -c 'mysql -u root -ptest < /path/to/database.sql'
方案二:先验证容器内文件存在(可选)
若不确定文件是否真的在容器内,可先执行命令确认路径有效性:
docker exec $DB_CONTAINER ls -l /path/to/database.sql
确认文件存在后,再执行方案一的导入命令即可。
内容的提问来源于stack exchange,提问作者dokgu
相关产品推荐
相关产品推荐

