zoukankan      html  css  js  c++  java
  • docker容器内使用systemctl报错

    问题:

    在docker容器中使用systemctl命令报错

    [root@707a5892dae2 /]# systemctl start nginx
    System has not been booted with systemd as init system (PID 1). Can't operate.
    Failed to connect to bus: Host is down
    

    原因:

    默认情况下,在第一步执行的是/bin/bash,而docker中的bug,无法使用systemctl
    所以使用/usr/sbin/init同时添加--privileged=true参数就能够使用systemctl了,但覆盖了默认的/bin/bash,因此我们想进入容器就不能使用docker attach了;而只能使用docker exec -it <dockername> /bin/bash

    解决办法:

    运行容器时添加--privileged=true,修改/bin/bash/usr/sbin/init;

    [root@919 ~]# docker run -itd --name nginxv2 --privileged=true centos /usr/sbin/init 
    # --privileged: 指定容器是否是特权容器。
    

    验证:

    [root@919 ~]# docker exec -it nginxv2 /bin/bash
    [root@491ab139e4fd /]# systemctl start nginx
    [root@491ab139e4fd /]# ps -ef |grep nginx
    root         187       1  0 02:32 ?        00:00:00 nginx: master process /usr/sbin/nginx
    nginx        188     187  0 02:32 ?        00:00:00 nginx: worker process
    
    作者:ccku
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。
  • 相关阅读:
    transition
    Java自增陷阱
    不同编码格式中,字节和字符的关系
    表单重复提交
    source folder和package的区别
    @test 测试案例不能添加参数
    http协议content-type
    jdbc的缺点和mybatis的优点
    ==和equals的区别
    spring IOC和AOP
  • 原文地址:https://www.cnblogs.com/ccku/p/13699024.html
Copyright © 2011-2022 走看看