[Docker] Failed to get D-Bus connection: Operation not permitted
최근 docker로 CentOS 7 테스트를 할 일이 생겼다. 그래서 아래와 같이 CentOS 7 이미지로 bash를 실행하고 systemctl을 입력했는데...
[user01@CentOS7 ~]$ docker run -it centos:7 bash [root@9fa1bb19b89c /]# systemctl Failed to get D-Bus connection: Operation not permitted
Failed to get D-Bus connection: Operation not permitted
위 메시지가 뜨면서 에러가 발생하였다.
여러가지 시도를 해본 후 나름 내린 결론은 --privileged 옵션과 -d 옵션으로 init을 실행한 후 다시 exec로 bash를 붙이는 것이다.
docker run --privileged -d --name mycent7 centos:7 init
docker exec -it mycent7 bash
[user01@CentOS7 ~]$ docker run --privileged -d --name mycent7 centos:7 init 4b0c9143719b5309e183d726ae26553d7b88ee2d7b00624abab359c94951d82a [user01@CentOS7 ~]$ docker exec -it mycent7 bash [root@4b0c9143719b /]# systemctl --version systemd 219 +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
두줄 입력하기 귀찮다면? bash의 command substitution 기능을 활용하면 된다.
docker exec -it $(docker run --privileged -d centos:7 init) bash
[user01@CentOS7 ~]$ docker exec -it $(docker run --privileged -d centos:7 init) bash [root@64e6deb53411 /]# systemctl --version systemd 219 +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
아파치를 설치하고 systemctl 명령어로 구동 및 확인하였는데 잘 동작한다.
yum -y install httpd
systemctl start httpd
systemctl status httpd
[root@64e6deb53411 /]# systemctl start httpd [root@64e6deb53411 /]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2017-09-07 14:31:59 UTC; 41s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 167 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /docker/64e6deb534119148ef42d04cab3502204617626e47a07d1ffef586dd717dbf2a/system.slice/httpd.service ├─167 /usr/sbin/httpd -DFOREGROUND ├─168 /usr/sbin/httpd -DFOREGROUND ├─169 /usr/sbin/httpd -DFOREGROUND ├─170 /usr/sbin/httpd -DFOREGROUND ├─171 /usr/sbin/httpd -DFOREGROUND └─172 /usr/sbin/httpd -DFOREGROUND ‣ 167 /usr/sbin/httpd -DFOREGROUND Sep 07 14:31:59 64e6deb53411 systemd[1]: Starting The Apache HTTP Server... Sep 07 14:31:59 64e6deb53411 httpd[167]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.6. Set the 'ServerName' directi...this message Sep 07 14:31:59 64e6deb53411 systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full.
'리눅스' 카테고리의 다른 글
리눅스 라우팅 테이블로 IP 차단하기 (0) | 2019.03.01 |
---|---|
CentOS6 samba 윈도우10 공유 폴더 접근 (0) | 2018.11.27 |
CentOS7 GRUB2 single mode 부팅 root 패스워드 초기화 (0) | 2018.10.11 |
리눅스 bash 문자열 변수 조작 (자르기, 삭제, 치환) (1) | 2018.07.20 |
[Docker] Failed to get D-Bus connection: Operation not permitted (8) | 2017.09.08 |
리눅스 ping 명령어 시간 출력 (2) | 2017.06.20 |
CentOS 6 gcc 4.8 필요한 경우 (8) | 2017.05.21 |
CentOS 리눅스 아파치 2.4 설치 (5) | 2017.05.07 |
리눅스에서 ip 명령어로 IP 설정하는 방법 (6) | 2014.08.04 |
2017.11.10 13:38
뭐좀여쭤봐도될까요??
윈도우10을 깔아서 프로그램깔고 좀 쓰다보니 처음에는 파일을 Delete를 눌으면 휴지통으로갔는데
이제는 드레그하든 Delete하든 창이뜨면서 이파일을 완전히 삭제하시겠습니까? 메시지가뜨는데
휴지통으로 보내는 방법없을까요??
너무 남감하네요...
2017.11.14 08:22
휴지통 우클릭해서 속성 보시면
파일을 휴지통에 버리지 않고 삭제할때 바로 제거 항목이 있어요.
그거 해제하시면 될거에요.
2017.11.29 12:18
인터넷에 아무리 찾아봐도 PBR에대한 자세한 설명이 있는곳이 없네요..
제가 못찾은거라면 아시고 계신 주소 링크나 답변 부탁드립니다.
꼭 부탁드려요^.^
2017.12.04 06:31
감사합니다 ~~~~
2017.12.26 17:03
안녕하세요 글 잘봤습니다 ㅎㅎ
docker exec -it $(docker run --privileged -d centos:7 init) bash
이 명령어로 실행시키고 docker 종료후에
다시 start, attach 하려니깐 컨테이너로 접속이 안되는데 왜그럴까요?
좀더보니깐 접속을 docker exec 명령어를 사용해서 접속을해야만하네요..
혹시 attach 로 접속하는법과 exec 로 접속하는법 차이를 알 수 있을까요?
2018.01.19 05:23
윈10에서도 스누피님이 만든 고스트 써도 되나요?
쓸수 있나요?
그리고 입력시 나타나는 보안문자 너무 흐릿해서 안 보여요. ㅡ.ㅡ
이걸 볼수 있는 사람들이 있긴 하군요. 10번 새로고침해서 드디어 입력하네요. 겨우 보여서
2018.03.09 16:40
비밀댓글입니다
2020.03.11 03:55
감사합니다.
셋팅하는 방법을 독학중인데.
AWS, CentOS에서 계속 이런 문제가 발생해서
너무 힘들었는데, 이 글을 보고 손쉽게 해결 되었네요...
감사합니다.