0

I created a container with volume mount to /dev/xvda1:/dev/xvda1 but when I tried to mount it to a folder it doesn't work:

root@ubuntu:/# docker run -v /dev/xvda1:/dev/xvda1 --cap-add=SYS_ADMIN  --security-opt apparmor=unconfined --security-opt seccomp=unconfined --rm -it ubuntu bash
root@690798858fcf:/# mkdir /mnt0
root@690798858fcf:/# ls /dev
console  core  fd  full  mqueue  null  ptmx  pts  random  shm  stderr  stdin  stdout  tty  urandom  xvda1  zero
root@690798858fcf:/# mount /dev/xvda1 /mnt0
mount: /mnt0: /dev/xvda1 already mounted on /etc/resolv.conf.
root@690798858fcf:/# umount /dev/xvda1
root@690798858fcf:/# mount /dev/xvda1 /mnt0
mount: /mnt0: /dev/xvda1 is not a block device; try "-o loop".
root@690798858fcf:/# mount -o loop /dev/xvda1 /mnt0
mount: /mnt0: mount failed: Operation not permitted.

If I create it with --privileged flag it works:

root@ubuntu:/# docker run --privileged --cap-add=SYS_ADMIN  --security-opt apparmor=unconfined --security-opt seccomp=unconfined --rm -it ubuntu bash
root@aa36dd8be903:/# mkdir /mnt0
root@aa36dd8be903:/# mount /dev/xvda1 /mnt0
root@aa36dd8be903:/#

Why -v /dev/xvda1:/dev/xvda1 is not enough?

Info about my system:

# ubuntu image
root@ubuntu:/# uname -r
5.4.0-1034-aws

root@ubuntu:/# docker -v
Docker version 20.10.7, build f0df350  
E235
  • 11,560
  • 24
  • 91
  • 141

1 Answers1

0

My colleague found the solution.
Mount was incorrect use. I needed to use the --device switch:

docker run --device=/dev/xvda1 --cap-add=SYS_ADMIN  --security-opt apparmor=unconfined --security-opt seccomp=unconfined --rm -it ubuntu bash   
E235
  • 11,560
  • 24
  • 91
  • 141