介绍

  最近在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.5
image: centos 7.6.1810
  • mount: permission denied报错信息如下:
$ mount -t /mnt/iso/xxx.iso /dev/cdrom /mnt/cdrom
mount: 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/cdrom
mount: /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

# 挂载iso
mount -o loop /mnt/iso/xxx.iso /mnt/cdrom

挂载后输出一下信息,说明成功

mount: /dev/loop0 is write-protected, mounting read-only

查看docker容器挂载iso

# 切换目录
ll /mnt/cdrom

可查看到内容

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐