前景提要
客戶要求進程不要使用root用戶,好在咱們的東西都跑在docker上,這樣豈不是建個用戶加個權限啟動docker就解決了么,但是經過了解,docker的非root用戶模式還有點費勁,所以記錄一下
1.創建新用戶
不管怎么樣,第一步肯定是先創建新用戶了
useradd xxxx 創建新用戶
passwd xxxx 設置密碼
chown xxx:xxx /home/xxx 修改目錄權限
這里因為我創建的新用戶在/home下已經存在了,所以會提示沒有將/etc/skel下的文件復制過來,需要自己復制一下
2.安裝root-less
官網給出了兩個方式:
1.如果是通過rpm安裝的話,root-less應該是包含在內了,直接執行:dockerd-rootless-setuptool.sh install 即可
2.如果不是通過rpm安裝的話可以執行 curl -fsSL https://get.docker.com/rootless | sh
但是客戶提供的服務器並不能訪問到外網,然后docker又是直接上傳的壓縮包安裝的,所以這里只能是自己把第二種方式的腳本執行一遍,通過觀察可以發現腳本其實就是去遠程下載了一個tar下來然后解壓安裝,那么我們就可以直接自己去吧tar包下載下來然后按照腳本里下載完成后的步驟執行了。
這里這個腳本可能會變,只講一下操作的思路。
1.查看腳本中stable對應的root-less下載地址,然后下載對應自己docker版本的壓縮包,上傳到服務器
2.解壓root-less,具體解壓命令再腳本中也有
3.執行./dockerd-rootless-setuptool.sh install,會提示安裝需要添加什么配置
4.安裝成功后命令行會提示在.bashrc中添加一些配置,按照配置操作即可
3.運行root-less docker
這里根據內核版本和發行版會有不同的操作,目前看主要是存儲驅動不同,我這里因為內核版本比較低,只有vfs是沒有限制的,所以啟動的時候執行:./dockerd-rootless.sh --experimental --storage-driver vfs
啟動后再觀察進程已經是非root了,到此非root用戶啟動docker完成。