데이터 분석의 기본 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 합니다!
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"]
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
실행명령어 해석!!
|
'데이터&AI > 데이터분석' 카테고리의 다른 글
Twitter(x)의 데이터를 분석해보기 - 1 (feat. python) (1) | 2024.09.03 |
---|---|
duckDB를 사용해보기 (feat. 가볍다, 근대 성능은 좋아!!? ) (0) | 2024.08.30 |
Python사용자 입장에서 이해하는 Front-end (with Pandas, React) (0) | 2024.05.24 |
빠르고 쉽게 설치하는 AIRFLOW (우분투, 코드 4줄) (0) | 2024.05.22 |
빅데이터 분석기사 실기 요점정리 (python) (0) | 2023.06.24 |
댓글