인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

쏭쏭님의 프로필 이미지
쏭쏭

작성한 질문수

Jenkins를 이용한 CI/CD Pipeline 구축

Docker 컨테이너로 Ansible 실행하기

edowon0623/ansible:latest 컨테이너에서 docker 서비스 실행 실패

작성

·

654

0

안녕하세요.

edowon0623/ansible:latest 이미지를 아래 명령어로 컨테이너를 실행 후,
컨테이너 안에서 docker 서비스를 실행하면 오류가 발생되면서 docker 서비스가 실행되지 않습니다.

docker run --privileged -itd --name ansible-server -p 20022:22  -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible:latest /usr/sbin/init
#systemctl status 메시지
[root@ace67f7bf994 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2022-10-03 15:22:47 UTC; 19s ago
     Docs: https://docs.docker.com
  Process: 43266 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 43266 (code=exited, status=1/FAILURE)

Oct 03 15:22:47 ace67f7bf994 systemd[1]: docker.service: Service RestartSec=2s expired, scheduling restart.
Oct 03 15:22:47 ace67f7bf994 systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Oct 03 15:22:47 ace67f7bf994 systemd[1]: Stopped Docker Application Container Engine.
Oct 03 15:22:47 ace67f7bf994 systemd[1]: docker.service: Start request repeated too quickly.
Oct 03 15:22:47 ace67f7bf994 systemd[1]: docker.service: Failed with result 'exit-code'.
Oct 03 15:22:47 ace67f7bf994 systemd[1]: Failed to start Docker Application Container Engine.
[root@ace67f7bf994 ~]#

 

이전 챕터에서 docker+ssh 컨테이너와 달리 아래의 파일이 존재하지 않는데요,
/etc/sysconfig/docker
/etc/sysconfig/docker-storage

 

잘문입니다.

  1. 이전 장에서 사용한 docker+ssh 컨테이너에 Ansible을 설치할 수 있을까요?

  2. edowon0623/ansible:latest 로 실행한 컨테이너에서 docker 서비스를 정상 실행할 수 있도록 확인 해주실 수 있을까요?

감사합니다

 

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

Windows 환경에서 Docker로 SSH+Docker 또는 Ansible 컨테이너를 실행하실 때 아래 내용을 참고하시어 실행해 보시기 바랍니다, DinD(Docker in Docker) 방식으로 실행 시 오류 발생하신 다는 분이 많아서 Host PC(Windows)의 Docker Desktop을 SSH+Docker 또는 Ansible 컨테이너 내에서 공유하여 실행하는 방법인 DooD(Docker Out Of Docker) 방식으로 기동하여 사용해 보시기 바랍니다. DooD 방식으로 사용하실 때에는 SSH+Docker 또는 Ansible 컨테이너 내에서 사용하는 포트는 Host PC에서도 그대로 저용되기 때문에, 포트 및 컨테이너명에 충돌이 없도록 지정해서 사용하시기 바랍니다. DooD를 실행하는 명령어는 아래와 같습니다.

docker run -itd --name ansible-server -p 20022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/ansible:latest /usr/sbin/init

추가로, 질문하신 1번 내용은 아래 명령어를 이용하여 실행하신 Docker 컨테이너 내에서도 설치가 가능합니다.

$ yum install -y python38 
$ pip3 install --upgrade --ignore-installed pip setuptools 
$ pip3 install ansible

 

추가 질문사항 있으시면 글 남겨 주세요.

감사합니다.

쏭쏭님의 프로필 이미지
쏭쏭
질문자

답변 감사합니다.

DindD 로 구성되었던 이전 이미지도 올려주시거나, 수강생들이 base 리눅스 이미지로 DinD 환경을 만들수 있도록 가이드를 한 번 해주시면 좋겠습니다.

  • 리눅스base이미지에 ssh 설치 + 도커설치

  • 리눅스base이미지에 ssh설치 + ansible 설치

     

감사합니다.

 

 

쏭쏭님의 프로필 이미지
쏭쏭

작성한 질문수

질문하기