내가 한 노력들

[ Docker ] systemctl사용시 Failed to get D-Bus connection 에러 해결 본문

IT 공부/Docker

[ Docker ] systemctl사용시 Failed to get D-Bus connection 에러 해결

JONGI-N CHOI 2023. 1. 11. 12:13

Docker 기반 컨테이너 환경에서 systemctl명령어를 사용하게 되면, "Failed to get D-Bus connection"에러가 나오는 경우가 있습니다. 

 

컨테이너 생성시

docker run --privileged --name container image /sbin/init

컨테이너를 생성시에  --privileged 옵션을 추가하고, /sbin/init 명령어로 컨테이너를 실행시킵니다. 

 

docker exec -it container /bin/bash

생성된 컨테이너에 bash쉘로 프로세스를 가동시켜서 접속하게 되면, 문제없이 systemctl 명령어를 사용할 수 있게 됩니다. 

 

 


Mac 환경에서서는 추가적으로 설정

맥에서는 버전에 따라서 추가적인 설정파일의 수정이 필요합니다.

위의 방법으로도 해결이 되지 않는 경우에는 아래의 파일 경로의 설정파일을 수정해보세요.

 

설정파일 수정

// ~/Library/Group\ Containers/group.com.docker/settings.json
{
  ...
  "deprecatedCgroupv1": true
  ...
}

위의 경로의 파일에서 "deprecatedCgroupv1"값이 false 인 경우에 true로 변경해줍니다.