반응형
이미지 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에서 에러가 떠도 놀라지 마세요 별 상관이 없더라고요 ㅎㅎ
반응형
'DevOps > Docker' 카테고리의 다른 글
Docker로 ubuntu, apache, php 환경의 이미지 만들기 (0) | 2021.07.15 |
---|---|
도커와 쿠버네티스 개념 정리 (0) | 2021.05.11 |
도커 이미지 레이어(Docker Image Layer) (0) | 2021.05.10 |
docker run 명령어 사용법, 옵션 (1) | 2021.05.08 |
도커 기본 명령어 정리 (0) | 2021.05.08 |