본문 바로가기
데이터&AI/데이터분석

데이터 분석가를 위한 쉬운 docker : 편리한 notebook 환경 만들기!!

by 일등박사 2024. 6. 6.

 

데이터 분석의 기본 Tool 이 된 python 그리고 Jupyter Notebook

하지만!! 노트북을 바꾸거나, 뭐할떄마다 주피터 노트북 설정하는데는 많은 어려움이있었습니다!!

 

대략적인 문제점은 아래아 같았는데요!!

 

1. 환경 설정 및 의존성 관리의 어려움 :  로컬 환경에서 여러 프로젝트를 진행하면서 서로 다른 버전의 라이브러리를 설치하다 보면 의존성 충돌 문제가 발생합니다

2. 재현성 및 일관성 문제 : 로컬 환경에서 작업할 경우, 동일한 코드가 다른 머신에서는 제대로 작동하지 않을 수 있습니다. 이는 각 머신의 환경 설정이 다르기 때문입니다

3. 보안 및 데이터 관리 문제 : 데이터 분석 프로젝트에서는 종종 민감한 데이터를 다룹니다. 로컬 환경에 이러한 데이터를 저장하고 처리할 경우, 데이터 유출이나 보안 위협에 노출될 위험이 있습니다. 또한 데이터를 로컬 시스템에 저장할 경우, 시스템 장애나 데이터 손실의 위험이 존재합니다. 또한, 데이터를 백업하거나 다른 환경으로 이전하는 것도 번거롭습니다.

 

이렇기에!! 간단하게 docker를 활요하여 notebook을 실행하는 방법을 알아보곘습니다!!

기존  (로컬에서 설치 및 노트북 실행)

우선, 기존에는 어떻게 진행했을까요?

가장 사용하기 간단한 Anaconda 파일을 받은뒤 설치하고

bash Anaconda3-2023.07-2-Linux-x86_64.sh

 

내 로컬환경에서 jupyter notebook을   필요 설정에 맞게 실행시킵니다!!

 

jupyter notebook --ip=localhost --port=1234 --allow-root --no-browser

 

 

도커 기반의 노트북환경!!  (도커를 사용, 언제나 동일한 관경 구축 가능)

0. 도커 설치하기

   > 도커 설치는 이미 여러 블로그에서 잘 소개되어있기에 skip 합니다!

  ㅁ 참고 : https://www.lainyzine.com/ko/article/a-complete-guide-to-how-to-install-docker-desktop-on-windows-10/

 

윈도우 Docker 설치 완벽 가이드(Home 포함)

Docker는 경량 가상화 기술인 리눅스 컨테이너 도구입니다. 윈도우 Home과 Pro에서도 몇 가지 설정을 통해 Docker Desktop을 사용할 수 있습니다. 이 글에서는 윈도우에서 Docker Desktop을 설치하는 방법을

www.lainyzine.com

 

 1. Dockerfile 만들기!

 > Dockerfile이란!! 내가 이 독립된 환경에서 어떻게 프로그램들을 설치하고 구현할지를 정해두는것 입니다.

 > python3.11 으로 환경 만들고!! notebook을 실행하는 코드입니다!!

# Python 3.11 베이스 이미지 사용
FROM python:3.11

# 작업 디렉토리 설정
WORKDIR /app

# 필요한 패키지 설치
RUN pip install pandas numpy scikit-learn openai jupyter notebook

# Jupyter Notebook 설정 파일 생성
RUN mkdir /root/.jupyter && \
    echo "c.NotebookApp.token = ''" >> /root/.jupyter/jupyter_notebook_config.py && \
    echo "c.NotebookApp.password = ''" >> /root/.jupyter/jupyter_notebook_config.py

# 실행 명령어
CMD ["jupyter", "notebook", "--ip=localhost", "--port=1234", "--allow-root" , "--no-browser"]

 

프로젝트 디렉토리에 Dockerfile을 둡니다!

 

2. Docker 이미지 빌드

위의 Dockerfile을 저장한 디렉토리에서 Docker 이미지를 빌드합니다.

docker build -t my-anaconda-env .

 

열심히 도커 이미지를 빌드해줍니다!!



※ 권한이 없을경우 내 사용자에 docker 권한을 추가해줍니다!!

sudo usermod -aG docker $USER
newgrp docker

 

 

 

3. Docker 컨테이너 실행

이제 생성된 도커 컨테이너를 실행하면!? 바로!! 노트북이 실행됩니다!!

 docker run -it --rm -p 1234:1234 --name my-jupyter-container my-jupyter-env

 

실행명령어 해석!!
  • docker run: 새로운 Docker 컨테이너를 실행합니다.
  • -it: 컨테이너에 터미널을 연결하여 인터랙티브하게 사용할 수 있도록 합니다. (-i는 입력을 받고, -t는 pseudo-TTY를 할당합니다.)
  • --rm: 컨테이너가 종료되면 자동으로 삭제합니다.
  • -p 1234:1234: 호스트 시스템의 1234 포트와 컨테이너의 1234 포트를 연결합니다. 이렇게 하면 호스트 시스템에서 웹 브라우저를 통해 컨테이너 내부의 Jupyter Notebook에 접속할 수 있습니다.
  • --name my-jupyter-container: 컨테이너에 'my-jupyter-container'라는 이름을 부여합니다. 이를 통해 나중에 컨테이너를 쉽게 관리하고 참조할 수 있습니다.
  • my-jupyter-env: 실행할 Docker 이미지의 이름입니다. 이 이미지에는 Jupyter Notebook 및 관련 환경이 설정되어 있어야 합니다.

댓글