如何在docker容器内禁用mount命令

如何避免在此泊坞窗会话结束时出现以下错误消息:

$ docker run -it ubuntu /bin/bash root@b3bcdc4551f5:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@b3bcdc4551f5:/# cd home/ root@b3bcdc4551f5:/home# ls root@b3bcdc4551f5:/home# mkdir 1 root@b3bcdc4551f5:/home# mkdir 2 root@b3bcdc4551f5:/home# mount --bind 1 2 mount: block device /home/1 is write-protected, mounting read-only mount: cannot mount block device /home/1 read-only 

更新:

 $ docker run --cap-add=SYS_ADMIN -it ubuntu /bin/bash root@1a6c069a8589:/# cd home/ root@1a6c069a8589:/home# mkdir 1 root@1a6c069a8589:/home# mkdir 2 root@1a6c069a8589:/home# mount --bind 1 2 mount: block device /home/1 is write-protected, mounting read-only mount: cannot mount block device /home/1 read-only root@1a6c069a8589:/home# exit $ docker run --cap-add=ALL -it ubuntu /bin/bash root@1e04bcd81fee:/# cd home/ root@1e04bcd81fee:/home# mkdir 1 root@1e04bcd81fee:/home# mkdir 2 root@1e04bcd81fee:/home# mount --bind 1 2 mount: block device /home/1 is write-protected, mounting read-only mount: cannot mount block device /home/1 read-only root@1e04bcd81fee:/home# exit 

– 特权是可以的。

自我回答:)
使用' --security-opt apparmor:unconfine d'禁用apparmor将工作。

Ref: issue 16429

尝试遵循问题9950中的build议:

你不能调用mount,除非你有CAP_SYS_ADMIN,这在默认的容器configuration中是不可用的。
你需要docker run --cap-add SYS_ADMIN