도커로 주피터랩 실행
본인 설치환경 :
OS : Ubuntu 18.04.5 LTS
CUDA : 11.1
Docker 20.10.6
nVidia-docker: https://github.com/NVIDIA/nvidia-docker
1. Deepo 이미지 설치
딥러닝 / 머신러닝 라이브러리 다수 포함한 이미지 (Jupyter Lab은 미설치)
$ docker pull ufoym/deepo
설치 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
...
ufoym/deepo all-py36-cu101 5d5a5c342dbf 2 weeks ago 13.3GB
ufoym/deepo latest 5d5a5c342dbf 2 weeks ago 13.3GB
...
2. Docker Container 실행
$ docker run -p {접속할 포트 번호}:8888 --gpus all -it -v {host-dir}:{container-dir} ufoym/deepo bash
- run: 도커 실행 명령어
- “-p 8888:8888”: 컨테이너의 8888번 포트를 호스트 OS 8888번 포트로 포워딩
- -gpus all”: 컨테이너의 gpu를 사용
- “-it”: 인터랙티브 터미널을 사용 (컨테이너 내에서 명령어 사용 가능해짐. 반대로 터미널로 접속 없이 외부에서 명령어 내릴땐 exec)
- “-v {host-dir}:{container-dir}”: 호스트와 컨테이너가 각각 공유용으로 사용할 폴더
- “bash”: 터미널에서 실행할 명령어
3. Jupyter Lab 설치
$ pip install jupyterlab ## 터미널 내부에서 설치할 때
$ docker exec -it {container-name} pip install jupyterlab ## 터미널 외부에서 설치할때
4. Jupyter Lab 실행
$ jupyter lab --ip 0.0.0.0 --port 8888 --allow-root --no-browser &
5. 변경사항이 반영된 이미지를 새로 저장
$ docker ps ## 실행중인 도커 컨테이너 아이디 확인
$ docker commit {container-id} {new-image-name}
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
{new-image-name} latest 19ea1eeb6d17 2 hours ago 13.3GB
ufoym/deepo all-py36-cu101 5d5a5c342dbf 2 weeks ago 13.3GB
ufoym/deepo latest 5d5a5c342dbf 2 weeks ago 13.3GB
6. 도커 컨테이너 및 주피터 백그라운드 / 포그라운드 조작
- 컨테이너 실행 유지하면서 인터랙티브 터미널 빠져나오기(deattach) : ctrl+p 후 ctrl+q
- 컨테이너로 다시 접속(attach) :
$ docker attach {container-id}
- 컨테이너 종료 :
$ exit
- 주피터랩 백그라운드 전환 : ctrl+z (이 경우 프로세스는 일시정지 상태)
- 백그라운드 프로세스 목록 확인 :
$ jobs
- 정지된 프로세스 백그라운드에서 실행 :
$ bg ## 모든 정지된 프로세스 전부 백그라운드 전환 $ bg {num} ## 특정 번호의 프로세스만 백그라운드 전환
- 백그라운드 프로세스 포그라운드로 전환 :
$ fg % {num}
- 백그라운드 프로세스 PID 조회 및 강제 종료:
$ ps -ef|grep {process} ## PID 조회 $ kill -9 {PID} ## 강제종료 $ kill -9 `ps -ef|grep {process}` ## 한번에
출처 :
'linux' 카테고리의 다른 글
더보기도커로 주피터랩 실행 | 2021. 06. 09 |
---|---|
텐서보드 원격 실행 (bind_all 옵션) | 2021. 01. 04 |
리눅스 폴더 덮어쓰기 (rsync) | 2020. 12. 21 |