본문 바로가기

리눅스

[리눅스] docker centos 8 systemctl 실행(/sbin/init)

728x90

centos 8 systemctl 실행(/sbin/init)

도커 컨테이너 내에서는 systemctl 명령이 원래의 기대대로 작동하지 않습니다. 이는 컨테이너 내에서 systemd init 시스템이 실행되지 않기 때문입니다. 그러나 CentOS 8 도커 컨테이너 내에서도 대체 방법을 사용하여 서비스를 관리할 수 있습니다.

 

CentOS 8 도커 컨테이너 내에서 서비스를 시작, 중지, 또는 재시작하기 위해 service 명령을 사용하거나 서비스의 init 스크립트를 직접 조작할 수 있습니다.

 

테스트 환경

$ cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

도커 컨테이너 실행

docker run -it -d --cap-add=SYS_ADMIN --privileged --name centos8 centos:8 /sbin/init

도커 컨테이너 목록 확인

docker ps -a
$ docker ps -a
CONTAINER ID   IMAGE      COMMAND        CREATED          STATUS          PORTS     NAMES
8ec200c2c626   centos:8   "/sbin/init"   14 seconds ago   Up 10 seconds             centos8

실행 중인 도커 컨테이너 안으로 진입

- 컨테이너 안에서 'systemclt' 명령 실행

docker exec -it centos8 bash
systemctl status
$ docker exec -it centos8 bash
[root@8ec200c2c626 /]# systemctl status
● 8ec200c2c626
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Wed 2023-01-18 00:17:23 UTC; 1min 0s ago
   CGroup: /docker/8ec200c2c626b5f67898a0d4e6ff358bcfbdd12ef43ad026ed65b9297b7b7b85
           ├─system.slice
           │ ├─dbus.service
           │ │ └─48 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
           │ ├─systemd-udevd.service
           │ │ └─34 /usr/lib/systemd/systemd-udevd
           │ └─systemd-journald.service
           │   └─21 /usr/lib/systemd/systemd-journald
           └─init.scope
             └─1 /sbin/init

 

728x90