kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Docker

docker를 이용한 파이썬 웹 개발환경 세팅

까마기 2020. 8. 26. 13:10
반응형

파이썬 웹 프로그래밍 - 개발환경 세팅 - Docker(Window에 설치)

 

  • Windows 10 pro 아래 버전은 docker 설치 안되며, Docker toolbox를 설치해야 한다.

  • 설치 후 cmd에서 > docker version 확인 -> Client / Server 둘다 확인 (powershell)

 

 

 

 

 

rm을 주는 이유  -> it는 옵션, alpine 이미지를 돌리는 sh명령을 돌리겠다 , exit하고 나가는 순간 컨테이너도 같이 삭제해라 라는 의미이다.

-> 우분투 환경으로 이미지 다운로드 및 접속, 쉘 커맨드 떨어짐

 

 

 

-> alpine 이미지를 가져와서 이미지를 run을 시키는데, sh라는 명령어를 실행시킨 것이다. size는 단지 3.97MB이며 이 리눅스 쉘 환경으로 들어가는데 host PC(윈도우)의 3.97MB 용량만 사용하는 것이다. 

 

 

powershell 하나 더 띄워서 docker 이미지를 모니터링 해보기

 

 

# watch 'ls -lR'

 

 

 

 

 

 

 

hub.docker.com

 

 

https://hub.docker.com/r/mcchae/xfce-pyenv/

 

docker compose 이용 -> 

 

 

윈도우 경로에 docker compose 설정 파일 생성 및 확인 docker-compose.yml

 

아래 경로(c:\users\playdata에 docker-compose.yml 생성 (위 내용 복사)

> docker-compose.exe up 

-> 파일명이 다를 경우 -f 옵션으로 파일명 지정

 

 

 

 

-> share it 클릭

 

사용자 계정 playdata 암호 설정 및 -> docker 세팅-> shared drives C apply 확인 -> File sharing 창에서 암호 입력

 

 

다운로드 진행 확인

 

개발환경, docker는 백엔드, 개발환경을 docker로 만들어 놓은 컨테이너를 내 pc의 컨테이너에 다운로드 받는 것이다.

 

컨테이너가 열고있는 포트 : 3389 원격

 

포트포워딩

33889:3389 -> 원격 데스크탑

60811:6081 -> 웹 브라우저

 

volumes

자신의 host PC의 경로에 볼륨 저장 위치

 

-> 정상적으로 실행 후 서비스 대기 상태

-> docker compose 프로세스 디버깅 모드

# docker-compose -d up //위 내용들이 백그라운드로 실행

 

-> novnc 로 접속 하기 web 브라우저에서 원격 접속 -> connect 클릭

 

 

-> 원격 데스크탑으로 접속 id : toor / pw : r

-> novnc를 종료하고 해야 한다.

 

-> 원격데스크탑으로 접속된 것 확인

 

 

 

도커 컨테이너를 별도로 올린 것 개발환경인 우분투 os

 

즉 처음에 bash shell을 통해 실행한 것 하나, docker-compose로 실행한 것 하나 총 2개의 컨테이너 실행 중

-> powershell 에서 확인 

> docker stats

 


 

 

  • pyenv 

 

$ pyenv install --list    // pyenv python 사용 가능 버전 출력

- anaconda : 머신러닝 작업 ㅅ시 디폴트 설치 통합 환경이며, 이런 환경도 pyenv 명령어로도 설치 가능

 

-> pyenv 명령을 이용해 가상개발환경 구성

 

개별적인 개발환경을 구축하여 사용하기위해 virtualenv를 통해 생성하는 것이고 뒤에 3.6.2는 버전, py3은 python 3버전을 사용하겠다라는 의미

 

 

 

 

 

 

 

 

 

 

.env를 생성하여 두면 

deactivate 후 다시 working 디렉터리에 접속 시 처음 yes 선택 하면 자동으로 개발환경이 activate가 된다

 

 

 

 

 

-> 컴파일 하면서 해당 라인에서 debug 모드로 상태 확인 

-> Console 탭 클릭하여 휴지통 아래 커맨드창 그림 클릭 하면 이 상태에서 인터프리터가 동작한다. 즉 개발 시 어떤 라인에서 잘못됬는지 디버깅을 하며 진행 할 수 있다. 

-

 

 

-> 또한 다시 프로그램을 돌리면

 

-> 마지막 라인 까지 실행하여 콘솔에 결과가 출력된다.

 

 

  • shebang code  -> #1/usr/bin/env python -> 인터프리터 지정 (스크립트 작성 시 맨 첫줄에 지정)

 위와 같이 주면 디폴트 파이썬 경로를 찾지만, 파이참안에서 설정에서 인터프리터 지정을 하였기 때문에 파이참 개발환경에서는 지정한 인터프리터로 동작한다.

 

 

 

 

 

if __name__ -> 테스트

 

 

 

 

 

 

*ipython : 파이썬 확장

web에서 파이썬 환경이 도는 것 

, ipython notebook이 jupyter로 바뀌면서 jupyter notebook이라 한다.

 

 

 

반응형