京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Docker容器如何开启特权模式

2024-11-4 02:32| 发布者: 76a9| 查看: 122| 评论: 0

摘要: 目次一、问题1、容器系统中无法使用systemctl下令2、无法通过/sbin/init启动容器二、原因三、办理方法1、编写dockerfile2、构建镜像3、运行构建的镜像4、验证四、留意总结一、问题 1、容器系统中无法使用systemctl下
目次

一、问题

1、容器系统中无法使用systemctl下令

纵然是开了特权模式([code]--privileged[/code])

2、无法通过/sbin/init启动容器

要想在容器中使用[code]systemctl[/code]下令,除了要指定[code]--privileged[/code]参数外,还必要指定启动参数为[code]/sbin/init[/code],但是大多数系统会有以下问题。

二、原因

现在大部分的系统镜像,移除了init软件包,导致镜像中没有[code]/sbin/init[/code]文件,从而导致无法启动。

三、办理方法

1、编写dockerfile

通过[code]Dockerfile[/code]文件修改镜像,到达使用[code]systemctl[/code]的目的

[code]Dockerfile[/code]文件如下:

  • [code]debian[/code]系:
[code]FROM ubuntuRUN apt-get update && apt-get install -y init && apt-get clean allENTRYPOINT ["/sbin/init"][/code]
  • [code]redhat[/code]系:
[code]FROM openeuler/openeulerRUN yum update -y && yum install systemd -yENTRYPOINT ["/sbin/init"][/code]

两者的区别在于安装的软件包名差别,[code]debian[/code]系的软件包名为[code]init[/code],而[code]redhat[/code]系则是[code]systemd[/code],实际使用时,将源镜像换成所需镜像即可

2、构建镜像

[code]docker build -t 新镜像名称:tag名称 .[/code]

3、运行构建的镜像

[code]docker run -itd --privileged new_ubuntu:latest /sbin/init[/code]

4、验证

进入对应的容器中,就可以执行相关下令了,即拥有了特权模式

四、留意

开启特权模式纵然方便,但是大概存在一定的风险,容器得到特权模式时,将可以大概访问宿主机全部资源,从而导致各种安全问题。

本教程之以是如此,是将docker容器作为虚拟机使用。

总结

以上为个人经验,希望能给各人一个参考,也希望各人多多支持脚本之家。


来源:https://www.jb51.net/server/328795w0z.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 19:44 , Processed in 0.029514 second(s), 18 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部