728x90
출처: [docker] Failed to get D-Bus connection 에러 해결 — Jen's Space (tistory.com)
이미지 centos:7를 사용하려고 했더니 systemctl을 사용할 수가 없다 ;;
ubuntu에서는 잘 됐던거 같은데 centos은 안되는게 왜케 많은지 모르겠다
[user01@master ~]$ docker run -it centos:7 bash
[root@9fa1db10b89c /]# systemctl
Failed to get D-Bus connection: Operation not permitted
1. 컨테이너 해결방법
--privileged 옵션과 -d 옵션으로 /sbin/init을 실행한후 exec로 /bin/bash를 실행시켜야 한다
$ docker run --privileged -d --name mycentos centos:7 /sbin/init
$ docker exec -it mycentos /bin/bash
2. 쿠버네티스 해결 방법
Dockerfile을 생성할 때 ENTRYPOINT 에서 /sbin/init 을 실행시켜준다
FROM centos:7
RUN yum -y install httpd
ENTRYPOINT ["/sbin/init", "systemctl start httpd", "systemctl enable httpd"]
$ docker build -t mycentos . # 현재 위치에 있는 Dockerfile을 이미지로 만들기
$ docker push <레포명>/mycentos # 이미지를 레포지터리에 올리기
그리고 deployment.yml 을 작성할 때 securityContext:privileged를 true로 해준다.
...
spec:
containers:
- name: mycentos
image: <레포명>/mycentos
securityContext:
privileged: true
imagePullPolicy: Always
...
사실 쿠버네티스는 이렇게 하면 된다는데 되는지는 모르겠다 ..
3. centos/systemd
그냥 이것도 저것도 다 귀찮다 싶으면 CentOS에서 제공하는 systemd가 가능한 Dockerfile을 사용하자
https://github.com/CentOS/CentOS-Dockerfiles/tree/master/systemd/centos7
728x90
반응형
'프로그램 활용 > 클라우드 가상화 도커' 카테고리의 다른 글
도커 컨테이너 레벨 명령어 (0) | 2023.08.01 |
---|---|
Exited 상태의 컨테이너 한 번에 삭제하기(feat. Created 상태의 컨테이너) (0) | 2023.08.01 |
Docker를 사용하여 MySQL 설치하고 접속하기 (0) | 2023.08.01 |
Docker + Apache + Oracle 14c + Oracle 19c (0) | 2023.07.28 |
Ubuntu 22.04에서 Docker로 Drupal을 설치하는 방법 (0) | 2023.07.28 |