본문 바로가기
카테고리 없음

04. (실습) 앱 컨테이너화 - App 서버 구성

by Engineer-Lee 2022. 6. 28.
반응형

애플리케이션 계층 컨테이너화

어플리케이션 컨테이너 이미지를 구성

 

1. projects/Django-Poll-App 디렉토리 안에 Dockerfile을 작성한다.

파이썬 3.8버전의 베이스 이미지를 기반으로 하고

실행에 필요한 패키지들을 설치하고 컨테이너의 위치를 지정했다.

그 후 requirements.txt에 있는 패키지도 설치했다.

외부에서 접속할 수 있도록 8000번 포트는 열어두었다.

 

2. docker build --tag poll_app . 명령어를 통해 도커 이미지를 빌드한다.

 

3. docker run --rm --name poll poll_app 명령어로 빌드된 이미지를 실행한다.

 

4. 그러면 오류가 생기는데 그 이유는 app 서버는 별도의 컨테이너에서 동작하기 때문에 DB는 별도의 컨테이너에서 동작한다. 즉 두 컨테이너가 다른 공간에 있어서 127.0.0.1로 서버를 열어도 연결이 되질 않는다.

 

5. ip address show eth0 명령어로 로컬 호스트 IP를 확인한다.

 

6. settings.py에서 DB host의 주소를 로컬 호스트의 공인IP로 변경한다.

 

7.  docker build --tag poll_app . 명령어를 통해 다시 도커 이미지를 빌드한다.

 

8. docker run --rm --name poll poll_app 명령어로 빌드된 이미지를 다시 실행한다.

그리고 브라우저로 접속를 확인해보면 접속이 실패할 것이다.

 

9. sudo ss -tulpn 명령어로 열린 포트 정보를 확인하면 8000번 포트가 없는걸 볼 수 있다.

이것은 도커 명령를 실행할 떄 포트를 호스트의 8000번 포트에 연결을 하지 않아서 그렇다.

 

10. docker run -p 8000:8000 --rm --name poll poll_app 명령어를 통해 8000번 포트에 대해 호스트에서 접근이 가능하도록 옵션을 주고 빌드된 이미지를 실행한다.

 

반응형