簡體   English   中英

Docker:如何為本地用戶授予 root 權限?

[英]Docker: How to give root permissions for the local user?

我正在像這樣在 Docker 中運行構建:

docker run --user $(id -u):$(id -g) --rm --network=host -v `pwd`:${SRC_MOUNT_DIR} my-image:latest my-build-script.sh

我正在使用--user設置本地用戶,以避免 root 擁有的文件出現在我的主目錄中。

現在,問題是我需要在我的構建腳本中使用sudo apt install來安裝來自其他一些構建的一些依賴項,但這需要 root。

我怎么安排這個? 我想不可能讓所有可能的用戶在沒有密碼的情況下使sudo工作..?

如果您容器內的用戶可以運行sudo apt install ...那么您也可以以 root 身份運行容器中的所有內容,因為任何攻擊都可以sudo ...任何攻擊代碼。 反而:

  • 考慮是否需要在容器內apt install ,或者是否可以在圖像中安裝。 最好在映像中安裝二進制文件並部署它們,而不是每次運行容器時都重新安裝應用程序。

  • 如果您有一個在啟動時需要 root 的用例,那么以 root 身份啟動您的容器,然后在完成這些 root 步驟后將其交給用戶。 gosu這樣的工具就是為此而設計的。 對於執行此操作的入口點示例,我有一個帶有入口點腳本的 docker-base 映像,該腳本添加gosu並使用exec運行 CMD 以避免/bin/sh作為 pid 1(這有助於信號處理)。

Gosu 可以在以下位置找到: https : //github.com/tianon/gosu

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM