解決docker鏡像(centos系統(tǒng))中無sudo命令問題
問題
最新在協(xié)助同事在docker中安裝app時,提供的container使用了centos基礎(chǔ)鏡像(某些功能閹割版):
[root@server111-111 admin]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest 75835a67d134 6 months ago 200 MB
經(jīng)檢查發(fā)現(xiàn)普通用戶需要執(zhí)行一些yum 安裝命令,提示權(quán)限不足,如下:
[Errno 13] Permission denied: ‘/var/lib/rpm/__db.002’
You need to be root to perform this command.
解決方案步驟
1. 查看docker container os版本
給docker容器安裝lsb_release后,檢查centos版本如下:
yum -y install net-tools vim redhat-release
[root@container /]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.5.1804 (Core) Release: 7.5.1804 Codename: Core
原生centos、ubuntu中提升普通用戶為root權(quán)限,自然能想到是通過sudo方式,然而輸入sudo卻報命令不存在,看來docker中官方centos鏡像已是精簡到不能在精簡的核心基礎(chǔ)OS。
2. 安裝sudo服務(wù)
安裝sudo服務(wù):
yum -y install sudo
3. sudoers list中添加普通用戶
添加普通用戶到sudoers列表中:
切換到root下:
Step ①、為/etc/sudoers文件增加寫權(quán)限(原為440)
chmod 640 /etc/sudoers
Step ②、添加用戶到sudoers list中(最后一行),同時修改屬性:
vim /etc/sudoers 或使用 visudo命令修改:
## Allow root to run any commands anywhere root ALL=(ALL) ALL ## Allows members of the 'sys' group to run networking, software, ## service management apps and more. # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL %docker_backuper ALL=(ALL) NOPASSWD: ALL
Step ③、/etc/sudoers文件改回原權(quán)限(440)
chmod 440 /etc/sudoers
4. 校驗
功能可行性檢查:
在普通用戶docker_backuper下,執(zhí)行
sudo su
命令,看能否切換回root。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker滾動標(biāo)簽無感升級+一鍵回滾的完整方案
本文詳細(xì)介紹了Docker鏡像滾動更新機(jī)制,涵蓋大版本與小版本升級規(guī)則,提供極簡命令操作,確保升級無縫無感,覆蓋開發(fā)、測試、生產(chǎn)全流程,支持運維人員快速掌握,需要的朋友可以參考下2026-06-06
docker安裝Jenkins配置Gitee SSH密鑰踩坑解決
這篇文章主要為大家介紹了docker安裝Jenkins配置Gitee SSH密鑰踩坑解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Docker安裝Nginx并修改Nginx配置文件的方法詳解
這篇文章主要給大家介紹了關(guān)于Docker安裝Nginx并修改Nginx配置文件的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-02-02
通過提前bake Docker鏡像加快基礎(chǔ)設(shè)施的啟動速度
這篇文章主要介紹了通過提前bake Docker鏡像加快基礎(chǔ)設(shè)施的啟動速度的相關(guān)資料,需要的朋友可以參考下2017-01-01
Docker-compose搭建Redis集群(Sentinel)的實現(xiàn)
本文主要介紹了Docker-compose搭建Redis集群(Sentinel)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Docker容器環(huán)境變量設(shè)置與查看方式
本文講解了Dockerfile中使用ENV設(shè)置環(huán)境變量,通過docker run和docker inspect查看方法,以及容器內(nèi)Shell腳本的應(yīng)用方式,涵蓋環(huán)境變量配置與調(diào)用的多種實踐2025-07-07
Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式
這篇文章主要介紹了Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
ubuntu docker搭建Hadoop集群環(huán)境的方法
這篇文章主要介紹了ubuntu docker搭建Hadoop集群環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
docker安裝OpenWebUI報錯500的原因及解決方法
Open?WebUI是一個可擴(kuò)展、功能豐富且用戶友好的自托管WebUI,旨在完全離線操作,這篇文章主要介紹了docker安裝OpenWebUI報錯500的原因及解決方法,需要的朋友可以參考下2025-07-07

