docker掛載ISO/分區時報failed to setup loop device: No such file or directory

在使用Docker容器的時候,若是須要使用mount命令,則必須使用特權模式啓動Dockerdocker

使用特權模式啓動docker的方式爲添加--privileged  例如 docker run -it --privileged -d 鏡像名bash

若是是API模式,則須要添加HostConfig參數中{"Privileged":true }服務器

在使用特權模式啓動docker後,進入到docker內部使用mount命令掛載某些ISO或者分區文件時可能出現oop

mount -o loop ./xxx.iso /mnt/cdrom
mount: ./xxx.iso: failed to setup loop device: No such file or directory

固然,若是沒有使用特權模式的狀況下,使用mount命令會提示權限不足spa

mount -t ./xxx.iso /dev/cdrom /mnt/cdrom
mount: permission denied

咱們假設咱們使用了特權模式,在掛載的狀況下遇到了failed to setup loop devicecode

那麼咱們須要關注如下兩點rem

一、確保安裝了循環設備內核模塊it

lsmod |grep loop

若是沒有任何輸出,則表明你須要安裝內核模塊io

modprobe loop

二、確認下/dev和/dev/shm分區的大小class

這兩個分區一般掛載tmpfs分區文件,在正常的物理服務器或者虛擬服務器中不會出現這類問題,而在docker中頗有可能出現

咱們須要使用

df -h

命令查看下這兩個分區的大小

若是分區過小也會出現failed to setup loop device的問題,做者就遇到了這個狀況。

調整方法

mount -o size=10240M -o remount /dev
mount -o size=10240M -o remount /dev/shm

我將這兩個分區調整大小後。搞定

相關文章
相關標籤/搜索