zoukankan      html  css  js  c++  java
  • How can I use systemctl from within a docker container (run on ubuntu 20.04, with ubuntu 18.04 base)

    参考文章: https://notesail.com/posts/docker-systemctl.html
    vscode + docker 构建远程开发环境: https://zhuanlan.zhihu.com/p/80099904

    How can I use systemctl from within a docker container (run on ubuntu 20.04, with ubuntu 18.04 base)
    Ask Question
    Asked yesterday
    Active yesterday
    Viewed 21 times
    0

    I'm trying to start a docker container with systemd as the init process so I can run multiple services from that container, and I get the following weird error:

    Systemd is listed as PID 1 when I run top, but none of the services i've enabled through systemctl are running, and trying to systemctl status them gives me system has not been booted with systemd as init process (PID 1)

    Here's my dockerfile:

    FROM ubuntu:20.04

    ENV container docker
    ENV LC_ALL C
    ENV DEBIAN_FRONTEND noninteractive

    RUN sed -i 's/# deb/deb/g' /etc/apt/sources.list

    RUN apt-get update
    && apt-get install -y systemd systemd-sysv
    && apt-get clean
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

    RUN cd /lib/systemd/system/sysinit.target.wants/
    && ls | grep -v systemd-tmpfiles-setup | xargs rm -f $1

    RUN rm -f /lib/systemd/system/multi-user.target.wants/*
    /etc/systemd/system/.wants/
    /lib/systemd/system/local-fs.target.wants/*
    /lib/systemd/system/sockets.target.wants/udev
    /lib/systemd/system/sockets.target.wants/initctl
    /lib/systemd/system/basic.target.wants/*
    /lib/systemd/system/anaconda.target.wants/*
    /lib/systemd/system/plymouth*
    /lib/systemd/system/systemd-update-utmp*

    ...assorted aptget installs...

    ENV LOCAL="yes"

    ...assorted utils scripts...

    RUN useradd --create-home fractal
    && usermod -aG sudo fractal
    && echo 'fractal:password1234567.' | chpasswd

    ...assorted utils scripts...

    ADD bootstrap.sh /home/fractal
    ADD entry.sh /home/fractal
    ADD fractal-input.rules home/fractal

    RUN chmod +x /home/fractal/bootstrap.sh
    && chown -v -R fractal:fractal /home/fractal
    RUN chown root:root /run/user
    RUN chmod +x /home/fractal/entry.sh

    ...adding assorted services...

    VOLUME [ "/sys/fs/cgroup" ]

    RUN systemctl set-default multi-user.target
    ENV init /lib/systemd/systemd

    ....assorted services enabled....

    CMD ["/lib/systemd/systemd"]

    18.04 20.04 docker
    share improve this question

  • 相关阅读:
    docker容器升级脚本
    Haproxy状态监控配置教程
    负载均衡之Haproxy配置详解(及httpd配置)
    升级代码脚本
    升级数据库脚本(加入事务)
    监控端口,新疆模拟用户登录脚本
    mongodb3.2系统性学习——3、update()操作
    Java Socket编程
    php错误级别设置
    php 用于绘图使用的颜色数组
  • 原文地址:https://www.cnblogs.com/jiftle/p/13584794.html
Copyright © 2011-2022 走看看