Docker를 사용하여 Jupyter Notebook을 실행하면서 한글 폰트 문제를 해결하는 방법을 확인해 보겠습니다.
- Dockerfile 작성이 Dockerfile은
jupyter/datascience-notebook:latest
이미지를 기반으로하여 빌드됩니다. 우분투 패키지 소스를 한국 미러로 변경하고, 나눔 폰트를 설치한 다음, 폰트 캐시를 업데이트합니다. - 먼저, Jupyter Notebook을 실행할 Docker 이미지를 빌드하기 위한 Dockerfile을 작성해야 합니다.
아래는 Dockerfile의 내용입니다.FROM jupyter/datascience-notebook:latest USER root # Ubuntu 패키지 소스를 한국 미러로 변경 RUN sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list && \ sed -i 's/security.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list # 나눔 폰트 설치 RUN apt-get update && apt-get -y upgrade && apt-get install -y fonts-nanum* && \ fc-cache -fv && rm -fr ~/.cache/matplotlib USER jovyan
- Docker Compose 파일 작성
build
: Docker 이미지를 빌드할 때 사용할 Dockerfile을 지정합니다.ports
: 호스트와 컨테이너 간의 포트 매핑을 설정하여 Jupyter Notebook을 호스트에서 접근할 수 있도록 합니다.volumes
: 호스트 디렉토리와 컨테이너 내부 디렉토리를 연결하여 Jupyter Notebook의 노트북 파일을 호스트와 공유합니다.environment
: 환경 변수를 설정하여 Jupyter Notebook 구성을 지정합니다. 여기서GRANT_SUDO
를 설정하여 사용자에게 sudo 권한을 부여하고, Jupyter Lab을 활성화하며, 토큰을 지정합니다.
- 이제 Docker Compose를 사용하여 컨테이너를 실행하는 방법을 설정합니다. Docker Compose 파일 (예:
docker-compose.yml
)을 작성합니다.
아래는 예시 Docker Compose 파일의 내용입니다.version: '3' services: jupyter: build: context: . dockerfile: Dockerfile ports: - "8888:8888" volumes: - /path/to/your/notebooks:/home/jovyan/work environment: - GRANT_SUDO=yes - JUPYTER_ENABLE_LAB=yes - JUPYTER_TOKEN=mysecrettoken
- 컨테이너 실행
-f
: 사용할 Docker Compose 파일을 지정합니다.-d
: 백그라운드에서 컨테이너를 실행합니다.
- Docker Compose 파일을 사용하여 컨테이너를 실행합니다.
아래 명령어를 실행하세요.{YOUR-DIR}
및{YOUR-PASSWORD}
를 실제 디렉토리 경로와 비밀 토큰으로 바꿔주세요.docker-compose -f /path/to/your/docker-compose.yml up -d
이제 Jupyter Notebook을 사용할 수 있으며, 한글 폰트 문제는 해결되어 있어야 합니다. 필요한 경우 Jupyter Notebook의 환경 설정을 추가로 수정할 수 있습니다.
파이썬, Jupyter, PostgreSQL, 그리고 pgAdmin을 포함한 Docker Compose 환경을 구성하는 방법을 확인해 보겠습니다.
먼저, 주어진 환경에서 기존 Docker Compose 파일을 개선하고 몇 가지 추가 사항을 제안하겠습니다.
- Docker Compose 파일 작성
version: '3' services: python: image: python:3.7-alpine working_dir: /app volumes: - ./app:/app command: ["python", "app.py"] db: image: postgres volumes: - ./docker/data:/var/lib/postgresql/data environment: - POSTGRES_DB=sampledb - POSTGRES_USER=sampleuser - POSTGRES_PASSWORD=1234 - POSTGRES_INITDB_ARGS=--encoding=UTF-8 pgadmin: image: dpage/pgadmin4 ports: - "80:80" environment: - PGADMIN_DEFAULT_EMAIL=admin@example.com - PGADMIN_DEFAULT_PASSWORD=admin jupyter: build: context: . dockerfile: Dockerfile-jupyter ports: - "8888:8888" volumes: - ./jupyter:/home/jupyter
python
: 파이썬 애플리케이션을 실행하는 서비스로서 Python 3.7 알파인 이미지를 사용합니다../app
디렉토리를 컨테이너 내/app
에 마운트하고app.py
를 실행합니다.db
: PostgreSQL 데이터베이스를 실행하는 서비스로서 PostgreSQL 공식 이미지를 사용하며, 데이터 디렉토리를 로컬 시스템과 공유합니다.pgadmin
: pgAdmin을 실행하는 서비스로서 pgAdmin 4 이미지를 사용하며, 포트 80을 호스트에 매핑하여 웹 인터페이스에 액세스할 수 있습니다.jupyter
: Jupyter Notebook을 실행하는 서비스로서 커스텀 DockerfileDockerfile-jupyter
를 사용하며, 포트 8888을 호스트에 매핑하여 Jupyter Notebook에 액세스할 수 있습니다.
- Docker Compose 파일 (
docker-compose.yml
)을 업데이트하여 모든 서비스를 포함하고 다음과 같이 정의할 수 있습니다. - Jupyter Notebook Dockerfile 작성
이 Dockerfile은FROM jupyter/base-notebook:latest USER root # 추가 패키지 설치 및 한글 폰트 설치 등 원하는 환경 설정 RUN apt-get update && apt-get install -y build-essential python3-pip openjdk-8-jre wget && \ pip install --upgrade pip && \ pip install jupyterlab && \ apt-get clean USER $NB_UID # Jupyter Notebook 설정 (예: 한글 폰트 추가) RUN mkdir -p ~/.jupyter && \ echo "c.NotebookApp.ip = '0.0.0.0'" >> ~/.jupyter/jupyter_notebook_config.py && \ echo "c.NotebookApp.token = ''" >> ~/.jupyter/jupyter_notebook_config.py && \ echo "c.NotebookApp.allow_root = True" >> ~/.jupyter/jupyter_notebook_config.py && \ echo "c.NotebookApp.notebook_dir = '/home/jupyter'" >> ~/.jupyter/jupyter_notebook_config.py && \ echo "c.NotebookApp.iopub_data_rate_limit=1.0e10" >> ~/.jupyter/jupyter_notebook_config.py EXPOSE 8888 WORKDIR /home/jupyter CMD ["jupyter", "lab"]
jupyter/base-notebook:latest
이미지를 기반으로하여 Jupyter Notebook을 설치하고 환경을 설정합니다. 이 설정에는 한글 폰트 추가와 Jupyter Notebook의 기본 설정이 포함됩니다. Dockerfile-jupyter
파일을 작성하여 Jupyter Notebook 컨테이너를 정의합니다. 아래는 예시 Dockerfile의 내용입니다:- 컨테이너 실행
이제 파이썬 애플리케이션, PostgreSQL 데이터베이스, pgAdmin, 그리고 Jupyter Notebook이 모두 실행됩니다.docker-compose up -d
- 모든 설정이 완료되었으므로, 다음 명령어를 사용하여 Docker Compose를 실행합니다:
- Jupyter Notebook 접속
- Jupyter Notebook에 액세스하려면 웹 브라우저에서
http://localhost:8888
또는 해당 호스트의 IP 주소 및 포트를 사용하여 접속할 수 있습니다. 초기 암호나 토큰이 설정되어 있다면 이를 입력하십시오.
이러한 설정을 통해 파이썬 애플리케이션, PostgreSQL, pgAdmin, 그리고 Jupyter Notebook을 Docker Compose를 사용하여 실행하고 관리할 수 있습니다. 필요에 따라 추가 설정을 수행하거나 다른 환경 요구 사항을 추가할 수 있습니다.
Docker를 사용하여 Jupyter Notebook을 설치하고 Pandas 라이브러리를 테스트하는 과정을 자세하게 설명하겠습니다.
1. Docker와 Docker Compose 설치
1.1. CentOS 7에서 Docker 설치
먼저, CentOS 7 서버에 Docker와 Docker Compose를 설치해야 합니다.
이미 Docker가 설치되어 있다면 이 단계를 건너뛰세요.
# SELinux 비활성화
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
# 필요한 패키지 설치
yum update -y
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
1.2. Docker Compose 설치
Docker Compose는 Docker 애플리케이션을 정의하고 실행하는 데 사용됩니다. Docker Compose를 설치합니다.
# Docker Compose 설치
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
1.3. Docker 서비스 시작
Docker와 Docker Compose를 설치한 후, Docker 서비스를 시작하고 부팅 시 자동으로 시작하도록 설정합니다.
# Docker 서비스 시작 및 자동 시작 설정
systemctl enable docker
systemctl start docker
2. Jupyter Notebook 설치
2.1. Docker Compose 설정
Docker Compose를 사용하여 Jupyter Notebook을 설치하고 실행할 것입니다.
먼저, docker-compose.yml
파일을 작성합니다.
version: "3"
services:
jupyter:
image: jupyter/datascience-notebook
volumes:
- /docker/jupyter:/home/jovyan/work
ports:
- 8888:8888
container_name: jupyter-container
위와 같이 docker-compose.yml
파일을 작성하고 저장합니다.
2.2. Jupyter Notebook 컨테이너 실행
그런 다음, Docker Compose를 사용하여 Jupyter Notebook 컨테이너를 실행합니다.
docker-compose up -d
-d
옵션을 사용하여 컨테이너를 백그라운드에서 실행합니다.
2.3. Jupyter Notebook 접속 및 토큰 확인
Jupyter Notebook 실행 시 토큰 값을 확인해야 합니다. 터미널에서 다음 명령어를 사용하여 토큰을 확인합니다.
docker logs jupyter-container
로그에서 토큰 값을 찾아 메모해둡니다. 그런 다음, 웹 브라우저에서 http://서버IP:8888/?token=토큰값
에 접속하여 Jupyter Notebook에 로그인합니다.
3. Pandas 라이브러리 테스트
Jupyter Notebook을 사용하여 Pandas 라이브러리를 테스트해보겠습니다.
- Jupyter Notebook에 접속한 후 "New"를 클릭하고 "Python 3"을 선택하여 새 노트북을 만듭니다.
- 다음 코드를 입력하고 실행합니다.
import pandas as pd df = pd.DataFrame( [[30, 173, 61], [27, 181, 79], [26, 158, 45]], index=[1, 2, 3], columns=['Age', 'Height', 'Weight']) df
- 코드를 실행하면 Pandas 데이터프레임이 표시됩니다.
이제 Jupyter Notebook을 사용하여 Pandas 라이브러리를 테스트할 수 있습니다. 필요한 경우 추가적인 Python 패키지를 설치하고 데이터 분석 작업을 수행할 수 있습니다.
또한, Docker Compose를 사용하여 Jupyter Notebook을 쉽게 관리하고 실행할 수 있습니다. Docker를 통해 환경을 격리하고 필요한 패키지를 설치하여 Python 개발을 시작할 수 있습니다.
댓글