docker容器中的特权模式与非用户名空间

从我所知道的,docker默认不使用user namespaces 。 因此,容器中的用户X(uid=1001)与主机系统中的用户是同一个用户: X(uid=1001)

当我在Docker中启用user namespace支持时,我看到不同的:

启用了usernamepsace:

 $ docker run ubuntu sleep 1000 htop returns for `sleep` `uid=165536` 

禁用了usernamepsace:

 $ docker run ubuntu sleep 1000 htop returns for `sleep` `uid=0` 

所以,我们看到差异。 以禁用的用户名空间运行的进程以root身份运行。 但为什么:

docker run -it ubuntu bash <Try to mount, for example /dev/sda 。 < – 这是不可能的,因为该容器不会看到/ dev / sda /

ls /dev/输出:

 console core fd full fuse mqueue null ptmx pts random shm stderr stdin stdout tty urandom zero 

为什么它看不到所有的设备,但bash是根? 由于没有usernamepsace,所以它与主机根目录是一样的根目录。

当我在特权模式下运行docker ls /dev/输出所有,为什么?