[Linux] System has not been booted with systemd as init system 해결

오류 메시지

System has not been booted with systemd as init system (PID 1). Can't operate.

참고

해결

실행 시 옵션

docker는 기본적으로 컨테이너에 systemctl 을 사용하지 못하도록 되어있다고 함 (권한을 제한하기 위함) 이를 해결하기 위해서는 container 를 하기 옵션을 주어 새로 생성해야한다. * --privileged=true * /sbin/init

# 기본
docker run -it -d --privileged=true --name "name" imagename:tag /sbin/init

# ubuntu 컨테이너 실행 명령어
docker run -d --name ubuntu -p 22:22 -it --privileged=true ubuntu:20.04 /bin/init

Dockerfile

Dockerfile 생성

FROM ubuntu:20.04

ARG DEBIAN_FRONTEND=noninteractive

ENV TZ=Asia/Seoul

RUN sed -i 's/kr.archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list

RUN apt update \
  && apt install -qq -y init systemd \
  && apt install -qq -y build-essential \
  && apt install -qq -y tzdata \
  && apt install -qq -y vim curl \
  && apt-get clean autoclean \
  && apt-get autoremove -y \
  && rm -rf /var/lib/{apt,dpkg,cache,log}

CMD ["/sbin/init"]

이미지 빌드 & 컨테이너 실행

# 이미지 빌드
docker build -t woogie/ubuntu:20:04 .

# 컨테이너 실행
docker run -d --privileged --name ubuntu -p 22:22 -it woogie/ubuntu:20.04 /sbin/init

links

social