日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
如何在Linux中以非root用戶運行Docker?

如何在Linux中以非root用戶運行docker?

譯文
作者:布加迪編譯 2020-04-17 08:00:22

云計算

系統運維 在Ubuntu上安裝Docker很容易!連新手都可以在15分鐘內安裝完畢。安裝Docker后,我注意到無法以普通用戶的身份執(zhí)行大多數Docker操作。每次我都只好以“root”用戶的身份或擁有“sudo”權限的情況下運行Docker。

創(chuàng)新互聯建站主營遼陽網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發(fā),遼陽h5小程序開發(fā)搭建,遼陽網站營銷推廣歡迎遼陽等地區(qū)企業(yè)咨詢

【51CTO.com快譯】在Ubuntu上安裝Docker很容易!連新手都可以在15分鐘內安裝完畢。安裝Docker后,我注意到無法以普通用戶的身份執(zhí)行大多數Docker操作。每次我都只好以“root”用戶的身份或擁有“sudo”權限的情況下運行Docker。每當我嘗試以非root用戶的身份或在沒有sudo權限的情況下運行Docker,都會出現以下錯誤:

  
 
 
 
  1. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied 

比如說,我想使用以下命令以普通用戶的身份查看Docker版本:

  
 
 
 
  1. $ docker version 

我還收到該錯誤消息:

  
 
 
 
  1. Client: Docker Engine - Community 
  2. Version: 19.03.8 
  3. API version: 1.40 
  4. Go version: go1.12.17 
  5. Git commit: afacb8b7f0 
  6. Built: Wed Mar 11 01:25:46 2020 
  7. OS/Arch: linux/amd64 
  8. Experimental: false 
  9. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied 

但是當我在擁有sudo權限的情況下運行同一命令時:

  
 
 
 
  1. $ sudo docker version 

它顯示了當前安裝的Docker版本的全部詳細信息,如下所示。

  
 
 
 
  1. Client: Docker Engine - Community 
  2.  Version:           19.03.8 
  3.  API version:       1.40 
  4.  Go version:        go1.12.17 
  5.  Git commit:        afacb8b7f0 
  6.  Built:             Wed Mar 11 01:25:46 2020 
  7.  OS/Arch:           linux/amd64 
  8.  Experimental:      false 
  9. Server: Docker Engine - Community 
  10.  Engine: 
  11.   Version:          19.03.8 
  12.   API version:      1.40 (minimum version 1.12) 
  13.   Go version:       go1.12.17 
  14.   Git commit:       afacb8b7f0 
  15.   Built:            Wed Mar 11 01:24:19 2020 
  16.   OS/Arch:          linux/amd64 
  17.   Experimental:     false 
  18.  containerd: 
  19.   Version:          1.2.13 
  20.   GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429 
  21.  runc: 
  22.   Version:          1.0.0-rc10 
  23.   GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd 
  24.  docker-init: 
  25.   Version:          0.18.0 
  26.   GitCommit:        fec3683 

我在Docker文檔頁面中搜索后,意識到Docker守護程序默認情況下綁定到Unix套接字而不是TCP端口。由于該Unix套接字歸root用戶擁有,Docker守護程序將只能以root用戶的身份運行。因此,普通用戶無法執(zhí)行大多數Docker命令。

如果你想要在Linux中以非root用戶的身份運行Docker,需要執(zhí)行以下步驟。我在Ubuntu 18.04服務器上進行了測試,效果很好!它也應該適用于其他Linux發(fā)行版。

在Linux中以非root用戶的身份運行Docker

要解決Docker權限被拒絕錯誤,并以非root用戶的身份使用Docker,請使用以下命令創(chuàng)建一個名為“docker”的組:

  
 
 
 
  1. $ sudo groupadd docker 

接下來,將你的用戶添加到docker組:

  
 
 
 
  1. $ sudo usermod –aG docker $ USER 

將用戶添加到docker組后,注銷并重新登錄,使更改生效。

或者,運行以下命令,對組進行更改:

  
 
 
 
  1. $ newgrp docker 

從現在開始,普通用戶(非root用戶)可以在沒有sudo權限的情況下使用Docker。

不妨以普通用戶的身份運行以下命令:

  
 
 
 
  1. $ docker version  
  2. $ docker run hello-world 

示例輸出:

看到了嗎?現在我在沒有sudo權限的情況下可以運行這兩個Docker命令。

假設你在將用戶添加到Docker組之前已經在擁有“sudo”權限的情況下運行了幾個Docker命令,可能會看到如下所示的錯誤:

  
 
 
 
  1. WARNING: Error loading config file: /home/user/.docker/config.json - 
  2. stat /home/user/.docker/config.json: permission denied 

上述錯誤信息表明,由于“sudo”命令,你的~/.docker/目錄是在擁有不正確權限的情況下創(chuàng)建的。為了解決這個問題,使用以下命令更改該目錄歸屬和權限:

  
 
 
 
  1. $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R 
  2. $ sudo chmod g+rwx "$HOME/.docker" -R 

注銷、重新登錄,使之生效。

如果這仍解決不了問題,你可能需要刪除~/.docker/目錄。該目錄會自動重新創(chuàng)建,但你會失去所有自定義設置,如果之前有的話。

但愿本文對你有所幫助。


網頁標題:如何在Linux中以非root用戶運行Docker?
路徑分享:http://www.dlmjj.cn/article/djchhdc.html