본문 바로가기
Docker

Docker - 도커로 주피터 노트북 서버 만들기

by DGK 2021. 12. 19.

 

도커 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

도커(docker)로 주피터 노트북 서버 만들기

docker를 통해 주피터 노트북 서버를 만드는 연습을 하고자 한다.

 

docker & jupyter notebook

docker container 내부에서 jupyter notebook이 실행되는 폴더인 /home/jovyan 폴더를 호스트 PC의 폴더와 연결하여 호스트 PC에서 docker를 실행하는 폴더에 있는 주피터 노트북 파일을 작업할 수 있다. (docker 활용)

 

[1단계]

/home/ubuntu/2021_LEARN

ubuntu에 주피터 노트북이 실행되는 폴더와 연결할 2021_LEARN 폴더가 있는지 확인한다.

 

[2단계]

docker run --rm -d -p 8888:8888 -v /home/ubuntu/2021_LEARN:/home/jovyan/work jupyter/datascience-notebook

 

docker container를 실행하면서 /home/ubuntu/2021_LEARN 폴더와 컨테이너 상에서 주피터 노트북이 실행되는 폴더인 /home/jovyan/work 폴더를 연결하는 것이다.

 

*참고

  • jupyter/datascience-notebook은 주피터 노트북의 공식 이미지명이다.
  • -p 옵션을 사용한 것은 외부에서도 퍼블릭 IP:8888로 접근할 수 있도록 포트를 열어두기 위함이다.

 

[3단계]

EC2 서버의 보안그룹 인바운드 규칙 편집

 

외부에서 docker container로 실행되는 주피터 노트북 폴더에 접근하려면 퍼블릭 IP:8888 포트로 접속해야 한다.

단, 접속 이전에 반드시 EC2 서버의 보안그룹 인바운드 규칙에서 8888번 포트가 오픈되어 있어야 한다.

 

[4단계]

3.38.14.143:8888로 접속한 결과


docker container에서 실행되는 주피터 노트북 폴더에 접속하려면 토큰(token) 정보가 필요하다.

 

[5단계]

docker logs CONTAINER ID

 

이는 "docker logs CONTAINER ID" 명령으로 해당 docker container의 log에서 주피터 노트북의 token 정보를 알 수 있다. (ex. token= 이후에 나오는 토큰 값을 참조할 것) 

 

[6단계]

3.38.14.143:8888로 접속한 결과

 

위에서 얻은 토큰 값을 Log in 입력창에 넣어서 주피터 노트북에 접속하면 된다.

 

[7단계]

3.38.14.143:8888로 주피터 노트북이 실행되는 폴더에 접속한 결과

 

이처럼, 외부에서 퍼블릭 IP로 docker container 안에서 실행되는 주피터 노트북에 접속하여 해당 폴더의 파일을 작업할 수 있다.

 

 

댓글