你可能希望在容器中执行的一些高级操作(例如Docker-in-Docker(DinD),NTP,安装环回设备等),默认情况下将需要比给予容器的root用户更高的权限。因此,需要允许其他特权才能使容器无问题地运行,因此对于该用例,Docker具有非常简单但非常宽泛的特权模式,可将完整主机的功能添加到容器中。要使用此模式,只是追加--privileged到docker run命令:
Docker-in-Docker(通常称为DinD)是一种容器的特殊配置,允许你在已经在Docker引擎上运行但不共享Docker套接字的容器内运行Docker引擎,这允许(如果预防措施是在你的基础架构中构建已经容器化的容器的更安全和强大的方法。此配置的流行程度有点罕见,但在用作持续集成(CI)和持续交付(CD)设置的一部分时非常强大。
没有额外特权的NTP守护进程,看看会发生什么
[root@www.linuxea.com ~]# run -it \
--rm \
cguenther/ntpd
ntpd: can't set priority: Permission denied
reset adjtime failed: Operation not permitted
creating new /var/db/ntpd.drift
adjtimex failed: Operation not permitted
adjtimex adjus