반응형
Docker 를 이용해서 설치를 한다면, pip를 이용해서 설치하는 것이 가장 깔끔한 선택이라고 할 수 있다.
# 베이스 이미지 선택 (예: Python 3.8 슬림 버전)
FROM python:3.8-slim
# 작업 디렉터리 설정
WORKDIR /app
# 필요한 패키지 설치
RUN pip install --no-cache-dir notebook
# 노트북 서버 포트 개방
EXPOSE 8888
# Jupyter Notebook 실행
CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root"]
만약 여기에 Nginx를 이용하게 되면, 특정 경로는 Notebook 그외 경로는 다른 서비스를 할 수 있도록 구성도 가능하게 된다.
아래는 Nginx와 함께 Notebook을 설치하는 스크립트이다.
# 베이스 이미지 선택 (예: Python 3.8 슬림 버전)
FROM python:3.8-slim
# 작업 디렉터리 설정
WORKDIR /app
# 필요한 패키지 설치
RUN pip install --no-cache-dir notebook
# NGINX 설치 및 설정
RUN apt-get update && apt-get install -y nginx && rm -rf /var/lib/apt/lists/*
# NGINX 설정 파일 복사
COPY nginx.conf /etc/nginx/nginx.conf
# Jupyter Notebook 실행 스크립트 복사
COPY start-notebook.sh /usr/local/bin/start-notebook.sh
RUN chmod +x /usr/local/bin/start-notebook.sh
# 포트 개방
EXPOSE 80 8888
# 시작 명령어 설정
CMD ["start-notebook.sh"]
NGINX 설정 파일 (nginx.conf)
events {}
http {
server {
listen 80;
location /notebook {
proxy_pass http://localhost:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /otherservice {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
start-notebook.sh 파일
#!/bin/bash
# Jupyter Notebook 백그라운드에서 실행
jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root &
# NGINX 실행
nginx -g 'daemon off;'
반응형
'Linux' 카테고리의 다른 글
Docker - CMD와 ENTRYPOINT 차이점 (0) | 2024.05.28 |
---|---|
Docker - letsencrytpt 생성하기, 갱신 (0) | 2024.04.12 |
Elasticsearch - 기본 용어 이해, 환경 구성 및 REST API 기본 (0) | 2024.03.18 |
SQL - SELECT와 함께 WHERE와 ORDER BY 많이 사용하는 TSQL문 (0) | 2024.03.10 |
AWS Credentials 저장위치, 적용 순서 (0) | 2024.03.07 |