【오류 해결】 Jupyter/Jupyter Lab에서 Docker에서 마운트되지 않을 때

소개



Jupyter Lab을 Docker로 환경 구축
기사에서 JupyterLab을 Docker로 환경 구축하려고했습니다.
sudo docker run  \
    --rm \
    -e TZ=Asia/Tokyo \
    -p 8888:8888 \
    --name jupyterlab \
    -v $(pwd)/code:/code \
    jupyterlab:latest \
    start.sh jupyter lab --NotebookApp.password="sha1:xxxxxxxxxxxxxxxxxxxxxxxx"

이 근처에서, 아무래도 환경을 구축할 수 없다···

라는 것도 -v 옵션은自分のディレクトリ:コンテナ側のディレクトリ 그리고 디렉토리 내용을 동기화할 수 있는 것입니다만, 아무래도 동기화를 할 수 없었습니다.

자신의 환경이 Mac인 것도, 도중에 조작 실수를 실시하고 있었을 가능성도 있습니다.

이번에는 그 안에서 배운 것을 정리해 갑니다.

컨테이너 내에서 조사



우선
 docker run --rm --name test -it jupyterlab:latest bash

이 명령으로 jupyterlab 이미지를 test라는 컨테이너 이름으로 만들고 bash로 연결해 보겠습니다.

이 컨테이너 내에서
echo $HOME

그렇다면/home/jovyan이 홈처럼 보입니다.

-v에 주는 디렉토리를 변경해 보기



결론부터 말하면, 자신의 경우 -v $(pwd):/home/jovyan/code 이나 -v $(pwd)/code:/home/jovyan/code 라고 하는 것으로 잘 되었습니다.

거기까지 오른쪽 왕곡이 있었지만 ...
docker run  -v `pwd`:/home/jovyan/work/works -p 10000:8888 --name jupyter jupyter/datascience-notebook 

우선, 위와 같이 해서 jupyter로 보통 조사하기로 했습니다.
위와 같이, pwd =(Users/ganariya/~/The_ML)의 내용
  • Dockerfile
  • .gitignore
  • README.md

  • 가/home/jovyan/work/works에 배포되었습니다.

    즉,
    /home/jovyan/work/works/Dockerfile
    /home/jovyan/work/works/.gitignore

    같았습니다.

    분명히.

    다음
    docker run  -v `pwd`/abc:/home/jovyan/work/works -p 10000:8888 --name jupyter jupyter/datascience-notebook 
    

    로 보았습니다. 즉, 호스트하는 Mac 측의 파일을 pwd:コンテナディレクトリpwd/abc 디렉토리로 만들자! 그렇습니다.

    이렇게 하면 /home/jovyan/work/works 의 내용이/home/jovyan/work/works 에 들어가 있었습니다.

    여기까지는 예상대로 같습니다.

    왜 문제가 발생했는가?



    여기까지 조사한 결과로부터pwd 이나 pwd 가 tree 의 기준으로 하는 위치가 원인으로, 동기화가 되어 있지 않은구나라는 결론에 이르렀습니다.

    Jupyter와 JupyterLab은 아마도 변경할 수 있다고 생각합니다.
    공식 이미지에서 빌드한 컨테이너를 열면



    위와 같이 되어 있어, pwd/abc 가 트리의 것이 되어 있습니다.

    따라서 JupyterJupyterLab는 jupyter로 건드렸습니다.

    그러나 첫 번째 /home/jovyan에서는 문제가 발생합니다.
    호스트 디렉토리의 $(pwd)/code 디렉토리를 컨테이너의 루트 디렉토리의 code라고 하는 디렉토리에 작성합니다.

    그러나 datascience-notebook과 같은 기본 이미지에서는 해당 컨테이너의 Home이 $(pwd):/home/jovyan/work이므로 $(pwd):/home/jovyan/work/works를 접할 수 없습니다.

    따라서, 마운트 자체는 되고 있습니다만, 보이지 않는 한층 더 상위의 계층으로 마운트 되고 있었던 것입니다・・・><

    결론



    뇌사로 사용하고 싶을 때는 Jupyter에 관해서는
    $(pwd)/code:/code
    와 같이, /home/jovyan 이하에 두자···><!

    감상



    /code에서도 할 것 같아···! (홈 디렉토리를 바꾸거나 JupyterLab의 기동 위치를 바꾼다···?)

    좋은 웹페이지 즐겨찾기