Docke中錯誤"Failed to get D-Bus connection: Operation not permitted"

問題

 docker運行CentOS7.7容器,裏面安裝了一個Nginx服務器,當我用"systemctl start nginx.service"啓動nginx服務,結果報錯"Failed to get D-Bus connection: Operation not permitted"。

分析

systemd是一個維護系統服務程序,他的執行需要特權訪問Linux系統內核;而容器本身只是一個文件系統(不同於虛擬機,虛擬機是一套完整的操作系統),不運行後臺服務,而默認啓動只是以普通用戶訪問Linux內核,也就是沒有特權,所以就需要運行容器的時候授權。

解決

# 加上--privileged運行容器
docker run -itd --privileged --name "centos7.7" centos:v1
# exec命令進入centos7.7容器
docker exec -it ea7ee0822b9c /bin/bash
# 之後就可以用systemctl命令啓動nginx服務
systemctl start nginx.service

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章