서버의 Docker 컨테이너에서 실행한 jupyter, tensorboard에 접속하기

Docker와 GitHub를 이용한 소프트웨어 연구 환경 구축에서 Docker 프로젝트 템플릿에 대해 소개해드렸습니다. 리눅스 서버에서 프로젝트 템플릿을 이용해 만든 Docker 컨테이너를 실행하고, 컨테이너 내에서 Jupyter lab/notebook 또는 tensorboard를 실행한 후 데스크탑 PC의 웹브라우저를 이용해 접속하는 방법을 살펴보겠습니다. 아래 명령들을 실행하기 전에 먼저 컨테이너를 만들고(build.sh) 실행해주세요(run.sh).

Jupyter lab/notebook

서버의 프로젝트 내 docker 디렉토리에서 다음 명령을 실행합니다.

$ ./exec.sh lab (또는 ./exec.sh notebook)

위 명령을 실행하면 jupyter lab/notebook이 background로 실행됩니다. 실제로는 다음 명령이 실행됩니다.

$ jupyter lab[notebook] --no-browser --ip=0.0.0.0 --NotebookApp.token=****

위에서 ****는 접속 비밀번호로, Env.sh 파일에서 지정해줍니다.

컨테이너의 jupyter port, tensorboard port와 서버의 해당 port는 컨테이너 실행시 연결된 상태이므로 이제 데스크탑 PC의 port를 서버의 해당 port로 연결하면 됩니다. 참고로, Port 번호는 Env.sh 파일에서 바꿀 수 있습니다. 데스크탑 PC에서 서버로 연결하기 위해 다음 ssh tunneling 명령을 실행합니다. 리눅스나 MacOS의 경우 터미널에서, 윈도우즈의 경우 PowerShell에서 실행하면 됩니다.

$ ssh -N -L 8888:localhost:8888 your_id@server_ip

위 명령을 통해 서버와 데스크탑 PC의 port를 연결했다면 데스크탑 웹브라우저에서 localhost:8888 주소로 서버 컨테이너의 jupyter lab/notebook에 접속하여 사용할 수 있습니다.

TensorBoard

텐서보드도 사용할 수 있습니다. 텐서보드 파일이 src/logs 디렉토리에 있을 경우 docker 컨테이너 내에서 src 디렉토리로 이동한 후 tensorboard를 실행합니다.

$ ./exec.sh # 컨테이너 내 터미널 접속
$ cd src
$ tensorboard --bind_all --logdir=logs

위 명령을 실행한 후에는 tensorboard port를 이용하여 앞에서와 같이 ssh tunneling 명령을 실행합니다.

$ ssh -N -L 6006:localhost:6006 your_id@server_ip

이제 데스크탑 웹브라우저에서 localhost:6006 주소로 서버 컨테이너에서 실행한 tensborboard에 접속할 수 있습니다.

참고로, Jupyter lab/notebook과 TensorBoard를 동시에 사용한다면 다음과 같이 한 번에 연결할 수도 있습니다.

$ ssh -N -L 8888:localhost:8888 -L 6006:localhost:6006 your_id@server_ip

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중