Docker容器centos、unbuntu 无法使用 systemctl 命令

news/2024/8/26 15:07:42

报错内容:

   System has not been booted with systemd as init system (PID 1). Can't operate.
   Failed to connect to bus: Host is down

意思是 : 1号进程不是 init ,而是其他例如 /bin/bash ,所以导致缺少相关文件无法运行。

解决方法:

  docker run -itd   --privileged --name myCentos centos /usr/sbin/init

创建完成后: 请使用以下命令进入容器

  docker exec -it myCentos /bin/bash

/bin/bash 要特别注意,不能遗忘

默认情况下,在第一步执行的是 /bin/bash,而因为docker中的bug,无法使用systemctl

所以我们使用了 /usr/sbin/init 同时 --privileged 这样就能够使用systemctl了,但覆盖了默认的 /bin/bash

因此我们如果想进入容器 就不能再使用

 docker attach myCentos 

而只能使用

 docker exec -it myCentos /bin/bash

因为 exec 可以让我们执行被覆盖掉的默认命令 /bin/bash 同时 -it 也是必须的。

对于ubuntu 也类似,可能init 目录不太相同


http://www.niftyadmin.cn/n/4638849.html

相关文章

什么是PXE?

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终…

.sh 编写

2019独角兽企业重金招聘Python工程师标准>>> 1.常用符号 ./run.sh abc def //$0 是./run.sh 这个字符 echo hello $0 $1 $2 // $1 取出abc 的值 ,$2 ,取出第二个参数 $# // 参数的个数 $ // 第0个后面所有的参数 $1 // $n 第一个或者n个参数 $? // 上次命令执行命令…

什么是esxi?

ESXi 专为运行虚拟机、最大限度降低配置要求和简化部署而设计。只需几分钟时间,客户便可完成从安装到运行虚拟机的全过程,特别是在下载并安装预配置虚拟设备的时候。 安装设置 在服务器上安装ESXi主机,vSphere提供了几种方法:交互式、脚本、…

DVWA之SQL Injection/SQL Injection(Blind)

SQL Injection SQL语句基本知识 由于常见的注入类型为数字型和字符型(根据查询的字段值有无引号决定的) 可通过a’ or 1 1#或者a or 1 1#(a表示正确输入的值,#为注释)来判断注入类型。 若为数字型sql注入,前者报错或查询不到数据、后者可能查询到所有结…

sql server 自定义split 标值函数

自定义一个函数,分隔一个以分隔符的隔开字符串,例如把‘1,3,5,7,9’ 变成 数字1 3 5 7 9的结果集。 自定义标值函数: create function [dbo].[my_split](SourceSql varchar(8000),StrSeprate varchar(10)) returns temp table(a varchar(100)…

校招实习

实习怎么找 实习那些坑

JS 21 break continue

break 可以在switch和循环语句中使用; break 立即终止离它最近的循环;在嵌套循环中,也只能终止一层离它最近的 // 可以在for循环当中的if内使用,不可以单独在if中使用;。 continue在循环体中使用 // 可以在for循环当中…

Java之JMX 详解

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt194 一、JMX简介 JMX是一种JAVA的正式规范,它主要目的是让程序有被管理的功能,那么怎么理解所谓的“被管理”呢?试想你开发了一个软件(如&#xff37…