[Kubernetes] docker 와 minikube container 실행

2023. 6. 26. 10:55기술 창고/Kubernetes

728x90
반응형
SMALL

앞서 가상 머신 환경인 minikube를 설치하고 그곳에서 앞으로 시스템을 구축하고 운영하기 위해 설치 및 세팅을 완료했습니다.

이제 minikube를  실행하고 그 안에서 특정 image를 실행해보도록 하겠습니다.

 

!! 그 전에, 이 과정은 제가 따로 공부하면서 참고하고 있는 특정 개발자분이 만드신 내용들을 참조하고 있다는 것을 밝힙니다.

 

 

참고하고 있는 개발자 분이 만드신 image를 github에서 일부분 우선 확인해보았습니다.

그 중에 Dockerfile 이라는 파일을 확인해보겠습니다.

이 안에 제가 image 안에 포함하고 싶은 것들을 모두 기입합니다.
위의 예시 Dockerfile은 github 사이트에서 예시로 가져온 내용입니다.
해당 Dockerfile 내용 중 일부만을 사용할 것인데, 내용을 설명하자면

- FROM nginx:1.14.0-alpine
FROM 키워드로 nginx 로 부터 불러온다는 의미입니다.
nginx 는 흔히 쓰이는 웹 서버의 일종입니다.
실행하고자 하는 앱에 파일을 넣어주는 용도로 사용됩니다.

- MAINTAINER Richard Chesterwood "richard@inceptiontraining.co.uk"
이 Dockerfile의 주인을 명시하는 내용입니다.

- RUN apk add --update bash && rm -rf /var/cache/apk/*
- RUN rm -rf /usr/share/nginx/html/*
RUN 명령어로 실행하겠다는 의미입니다.
첫 번째 명령어는 apk 추가할 때 bash shell로 업데이트 시키면서 /var/cahe/apk 경로에 있는 모든 파일들을 삭제하겠다는 의미입니다.
두 번째 명령어는 /usr/share/nginx/html/ 경로 안에 있는 파일들을 삭제하겠다는 의미입니다.

- COPY /dist /usr/share/nginx/html
- COPY nginx.conf /etc/nginx/nginx.conf
COPY 명령어로 왼쪽에 기입된 경로에 있는 내용 혹은 특정 파일을 오른쪽에 기입한 경로 혹은 파일 생성하여 복사하겠다는 의미입니다.

 

 

docker desktop 에 참고하고 있는 분이 만든 image 를 검색합니다.
만약 다른 image 파일들을 사용하고자 한다면 다른 파일 및 내용들로 구성하여 진행하면 됩니다.

 

 

목록에서 k8s-fleetman-webapp-angular 항목에 View on Hub 를 눌러 사이트에서 내용을 확인해보도록 합시다.

이 또한 각자 사용하고자 하는 image 를 검색하여 View on Hub 로 들어간 다음 내용을 확인해도 됩니다.

 

 

접속한 Hub 사이트에 image에 대한 내용을 확인할 수 있는데 Tags 항목을 눌러주면 여러 release 버전을 확인할 수 있습니다.
release0 버전이 초기 버전일 것이고 0-5 버전 이후의 내용들이 개발자분께서 작업을 하시고 업데이트한 버전들일 것입니다.
여기서 release0-5 버전을 사용하도록 하겠습니다.

 

 

git bash 로 와서 방금 조회해보았던 image 를 다운받도록 합니다.
다운 명령어는 pull입니다.
명령어 : docker pull richardchesterwood/k8s-fleetman-webapp-angular:release0-5
richardchesterwood/k8s-fleetman-webapp-angular 까지는 image명이고 :release0-5 는 어떤 버전인지 선택한 부분입니다.

 

 

이제 docker images를 입력했을 때 방금 설치한 image를 확인할 수 있습니다.

 

 

이제 방금 설치한 image 를 실행하여 container화 시켜줍니다.
명령어 : docker run -p 8080:80 -d richardchesterwood/k8s-fleetman-webapp-angular:release0-5
-p 8080:80 옵션으로 요청받을 host 포트는 8080, 요청할 docker container 의 포트번호는 80 으로 포트 포워딩해주었습니다.
또한 -d 옵션으로 백그라운드에서 실행되도록 해주었습니다.

 

 

docker ps -a 명령어를 입력하여 지금 현재 존재하는 모든 container 들을 조회하여 확인해봅니다.

정상적으로 생성되고 실행되고 있습니다.

 

 

여기까지 왔으면 이제 브라우저에서 8080 포트로 요청했을 때 동작이 수행되어야 한다고 생각할 수 있겠지만 사이트에 연결되지 않을 것입니다.

 

 

그 이유는 container 가 minikube 안의 도커 데몬의 내부에서 실행되고 있기 때문입니다.
minikube 는 로컬 호스트를 통해 접근하는 것이 불가능합니다.

 

 

그래서 minikube가 위치하고 있는 ip주소를 우선적으로 알아야 합니다.
minikube ip 명령어를 통해 minikube의 ip주소를 확인합니다.

 

 

이제 이 minikube 의 ip주소를 가지고 브라우저에 8080 포트 번호를 붙여서 요청을 해보면 위와 같이 정상적으로 사이트가 연결되는 것을 볼 수 있습니다.

기본적으로 minikube 세팅하고 image를 받아서 실행시키기만 했는데도 특정 앱이 실행된 것을 볼 수 있습니다.

728x90
반응형
LIST