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
중간에 build에서 에러가 떠도 놀라지 마세요 별 상관이 없더라고요
728x90
반응형
'프로그램 활용 > 클라우드 가상화 도커' 카테고리의 다른 글
[Docker] 도커 컨테이너 명령어(create, start, stop, rm, run, cp) (0) | 2023.08.07 |
---|---|
도커 이미지 이름 구성 (0) | 2023.08.07 |
도커 docker mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket (0) | 2023.08.04 |
도커 docker에서 실행중인 MariaDB 설정 파일 수정하기 (0) | 2023.08.04 |
헷갈리는 Docker - 수정 (0) | 2023.08.04 |