Docker容器如何開(kāi)啟特權(quán)模式
一、問(wèn)題
1、容器系統(tǒng)中無(wú)法使用systemctl命令
即使是開(kāi)了特權(quán)模式(--privileged
)
2、無(wú)法通過(guò)/sbin/init啟動(dòng)容器
要想在容器中使用systemctl
命令,除了要指定--privileged
參數(shù)外,還需要指定啟動(dòng)參數(shù)為/sbin/init
,但是大多數(shù)系統(tǒng)會(huì)有以下問(wèn)題。
二、原因
目前大部分的系統(tǒng)鏡像,移除了init軟件包,導(dǎo)致鏡像中沒(méi)有/sbin/init
文件,從而導(dǎo)致無(wú)法啟動(dòng)。
三、解決方法
1、編寫(xiě)dockerfile
通過(guò)Dockerfile
文件修改鏡像,達(dá)到使用systemctl
的目的
Dockerfile
文件如下:
debian
系:
FROM ubuntuRUN apt-get update && apt-get install -y init && apt-get clean allENTRYPOINT ["/sbin/init"]
redhat
系:
FROM openeuler/openeulerRUN yum update -y && yum install systemd -yENTRYPOINT ["/sbin/init"]
兩者的區(qū)別在于安裝的軟件包名不同,debian
系的軟件包名為init
,而redhat
系則是systemd
,實(shí)際使用時(shí),將源鏡像換成所需鏡像即可
2、構(gòu)建鏡像
docker build -t 新鏡像名稱:tag名稱 .
3、運(yùn)行構(gòu)建的鏡像
docker run -itd --privileged new_ubuntu:latest /sbin/init
4、驗(yàn)證
進(jìn)入對(duì)應(yīng)的容器中,就可以執(zhí)行相關(guān)命令了,即擁有了特權(quán)模式
四、注意
開(kāi)啟特權(quán)模式縱然方便,但是可能存在一定的風(fēng)險(xiǎn),容器獲得特權(quán)模式時(shí),將能夠訪問(wèn)宿主機(jī)所有資源,從而導(dǎo)致各種安全問(wèn)題。
本教程之所以如此,是將docker容器作為虛擬機(jī)使用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一次centos Docker網(wǎng)橋模式無(wú)法訪問(wèn)宿主機(jī)Redis服務(wù)的故障排除經(jīng)歷
這篇文章主要給大家介紹了關(guān)于一次centos Docker網(wǎng)橋模式無(wú)法訪問(wèn)宿主機(jī)Redis服務(wù)的故障排除經(jīng)歷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Docker部署Mysql,.Net6,Sqlserver等容器
這篇文章介紹了Docker部署Mysql,.Net6,Sqlserver等容器的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12Docker 學(xué)習(xí)文檔(知識(shí)結(jié)構(gòu)整理)
這篇文章主要介紹了Docker 學(xué)習(xí)文檔的相關(guān)資料,需要的朋友可以參考下2016-11-11使用Vscode結(jié)合docker進(jìn)行開(kāi)發(fā)的詳細(xì)過(guò)程
這篇文章主要介紹了如何使用Vscode結(jié)合docker進(jìn)行開(kāi)發(fā),在本文中,我將提供一個(gè)在 Node 環(huán)境中運(yùn)行的 JavaScript 應(yīng)用程序示例。閱讀在容器內(nèi)開(kāi)發(fā)以獲取所有技術(shù)堆棧的詳細(xì)文檔,需要的朋友可以參考下2021-07-07.Net8項(xiàng)目使用docker、docker-compose部署的圖文步驟
本文主要介紹了.Net8項(xiàng)目使用docker、docker-compose部署的圖文步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04Docker搭建PlantUML服務(wù)生成UML圖的實(shí)踐分享
PlantUML 是一款開(kāi)源的 UML 圖形生成工具,它支持生成類(lèi)圖、時(shí)序圖、用例圖、活動(dòng)圖等多種類(lèi)型的 UML 圖,廣泛應(yīng)用于軟件設(shè)計(jì)、文檔編寫(xiě)以及團(tuán)隊(duì)溝通中,本文給大家介紹了Docker搭建PlantUML服務(wù)生成UML圖的最佳實(shí)踐,需要的朋友可以參考下2025-03-03