介绍
最近在macos的docker容器中需要使用mount挂载iso,挂载时报错failed to setup loop device: No such file or directory和mount: permission denied。找了一下,发现网上资料非常少,而且也有的方法试了也没有用,倒腾了很久,因此记录下来,帮助有需要的朋友,如果对你有帮助,帮忙点个赞,如果对你没帮助,欢迎在评论区评论,或补充你的解决方式,谢谢。
软件版本
os: max os x docker: 2.2.0.5image: centos 7.6.1810
mount: permission denied报错信息如下:
$ mount -t /mnt/iso/xxx.iso /dev/cdrom /mnt/cdrommount: permission denied
此报错通常由于docker容器没有fs挂载权限导致。
mount: /mnt/iso/xxx.iso: failed to setup loop device: No such file or directory错误信息如下:
$ mount -o loop /mnt/iso/xxx.iso /mnt/cdrommount: /mnt/iso/xxx.iso: failed to setup loop device: No such file or directory
此报错信息是由于docker容器无法使用循环设备导致。
由于docker容器无法访问循环设备导致,系统要进行mount,通常需要2种权限:
1.访问循环设备的权限;
2.新建文件系统的权限;
解决办法
# 超级模式运行docker run -itd --privileged=true troll/centos7.6:0.0.1# 登录容器docker exec -it 7a3637f7a3ae /usr/bin/bash# 新建目录mkdir /mnt/cdrom# 挂载isomount -o loop /mnt/iso/xxx.iso /mnt/cdrom
挂载后输出一下信息,说明成功
mount: /dev/loop0 is write-protected, mounting read-only
查看docker容器挂载iso
# 切换目录ll /mnt/cdrom
可查看到内容