본문 바로가기
시스템/리눅스

systemd rocky linux Dockerfile

by cbwstar 2025. 4. 15.
728x90
반응형

도커파일로  rocky 리눅스 기동시에  systemctl 명령이 안먹힌다.

systemctl은 cgroup 권한이 있어야 하기 때문에 그냥 도커로 올리면 안먹히기 때문에 systemctl이 가능하도록 도커파일로 이미지를 생성 하는 방법이다.

# Dockerfile
FROM rockylinux:9

ENV container docker

# 필수 패키지 설치
RUN dnf -y update && \
    dnf -y install systemd openssh-server sudo passwd && \
    dnf clean all

# root 비밀번호 설정
RUN echo "root:rockypass" | chpasswd

# SSH 설정 (루트 로그인 허용, 패스워드 로그인 허용)
RUN sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config

# SSH key 디렉터리 및 systemd 런타임 디렉터리 생성
RUN mkdir -p /var/run/sshd /run/systemd && \
    systemctl mask tmp.mount

# systemd 기본 명령
STOPSIGNAL SIGRTMIN+3
CMD ["/sbin/init"]

 

빌드

docker build -t rocky-systemd .

 

실행 (중요: privileged 모드 + cgroup 마운트)

docker run --privileged \
  --name rocky-systemd \
  -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
  -p 3222:3222 \
  -d rocky-systemd

 

접속 확인

ssh root@localhost -p 2222

컨테이너 안에서 systemd 확인
docker exec -it rocky-systemd bash

systemctl status
systemctl start sshd

 

 

 

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading