Docker 환경의 Python에서 일본어를 사용할 수 있도록

환경



OS: Windows10 Home 1909
Docker: Docker Toolbox
Docker 버전: 19.03.12

주의점



부끄러워하면서 Docker를 Jupyter 환경 정비에서 처음으로 사용하여 Docker에 대해 많이 알지 못했습니다. 자계의 마음도 담아 기재해 둡니다. ※ docker-compose.yml 사용

Docker image는 Dockerfile을 기반으로 구축됩니다. Docker image를 한 번build 하면 캐시가 생성됩니다. 캐시란 간단히 말하면, 2번째 이후의 읽기를 고속화하는 것입니다. 이 캐시가 있으면 build 때 우선적으로 사용됩니다. 따라서 Dockerfile을 업데이트 할 때 docker-compose build --no-cache에서 캐시를 사용하지 마십시오 build.

캐시를 사용하지 않는 build이므로 일부 항목에 상당한 시간이 걸릴 수 있습니다.

Dockerfile


FROM jupyter/datascience-notebook
RUN pip install --upgrade pip
RUN pip install jupyterlab
RUN jupyter serverextension enable --py jupyterlab

RUN curl -L  "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip" > font.zip
RUN unzip font.zip
RUN cp IPAexfont00401/ipaexg.ttf /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/ipaexg.ttf
RUN echo "font.family : IPAexGothic" >>  /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
RUN rm -r ./.cache

사용방법



Windows 환경에서는 Docker Quickstart Terminal에서 실행하십시오.

Dockerfile에 있는 Dockerfile 및 Dockerfile에 해당하는 docker-compose.yml이 있는 디렉터리로 cd로 이동한 후 다음 명령을 실행합니다(주의점도 확인하십시오).
docker-compose build
docker-compose up -d

docker-compose.yml에서 token 값을 설정하지 않은 경우 (빈 값은 "설정 중"이라고 가정합니다), 터미널에 URL이 출력된다고 생각합니다 (e.g. htp://127.0.0.1:8888/? 토켄 = ...). 그 token 값도 포함해 임의의 브라우저로 액세스하면 Jupyter를 사용할 수 있게 되어 있는 하즈입니다.

※ token 값을 빈 값으로 설정한 경우에는 http://192.168.99.100:8888 (windows) 로 액세스할 수 있습니다. 맥 http://localhost:8888

확인 방법



Jupyter를 사용할 수 있다면 다음을 파이썬에서 실행하십시오.
import matplotlib
import matplotlib.pyplot as plt
plt.figure()
plt.title('あ - A')
plt.ylabel('い - i')
plt.xlabel('う - Uu')

그 결과, 아래의 화상과 같이 출력되고 있으면 일본어를 사용할 수 있게 되어 있습니다!

수고하셨습니다!

결론



Anaconda 환경에서 졸업하고 마침내 Docker 환경으로 이동합니다! 라고 의지한 것은 좋았지만, Docker는 처음으로, 데이터 분석 계통의 지식 밖에 없었기 때문에 IT 지식은 자세하지 않고, 몇번이나 망설였습니다. 실은 이 일본어를 사용할 수 있도록 하는 것도 한 번 포기했습니다.

또, 최근의 기사는 mac환경만으로 windows환경의 기사를 찾는 것도 힘든 일입니다. 단지 그 windows 환경의 기사도 시간 경과로 환경이 바뀌어, 그대로의 코드를 박아도 움직여 주지 않는 것도 남아 있습니다. 그 코드를 개량하는 것도 즐겁지만 초학자 때는 어렵습니다 ....

참고 기사


  • Jupyter의 Docker 이미지에서 일본어를 사용할 수 있도록 Dockerfile을 작성했습니다.
  • docker-compose 'up'이라든지 'build'라든지 'start'와의 차이를 이해하지 못했기 때문에 정리해 보았다.
  • 좋은 웹페이지 즐겨찾기