Docker运行时无法找到已存在文件的问题求助
问题分析与解决办法
核心原因是Docker容器拥有独立的文件系统,你宿主机上的/root/Server_transcoder/目录并没有挂载到容器内部,容器自然找不到这个路径下的文件。
解决步骤如下:
- 给
docker run命令添加-v参数,将宿主机的文件目录挂载到容器内对应路径,修改后的命令如下:
docker run --rm --device /dev/dri:/dev/dri -v /root/Server_transcoder/:/root/Server_transcoder/ jrottenberg/ffmpeg:5.1.2-vaapi2004 -hwaccel vaapi -hwaccel_output_format vaapi -i /root/Server_transcoder/bbb_sunflower_1080p_30fps_normalORIG.mp4 -c:v h264_vaapi /tmp/example.mp4
- 额外提示:如果需要保留转码后的
/tmp/example.mp4,可以把宿主机的某个目录挂载到容器的/tmp/下,否则容器销毁后输出文件会丢失,示例命令:
docker run --rm --device /dev/dri:/dev/dri -v /root/Server_transcoder/:/root/Server_transcoder/ -v /你的宿主机输出目录:/tmp/ jrottenberg/ffmpeg:5.1.2-vaapi2004 -hwaccel vaapi -hwaccel_output_format vaapi -i /root/Server_transcoder/bbb_sunflower_1080p_30fps_normalORIG.mp4 -c:v h264_vaapi /tmp/example.mp4
简单总结:Docker不会自动共享宿主机文件,必须通过-v参数显式挂载目录,容器才能访问宿主机上的文件。
内容的提问来源于stack exchange,提问作者dexonter
相关产品推荐
相关产品推荐

