はじめに
ここ数年でPythonを中心とした。Deeplearning, Statisticsを試すために職場の開発環境が汚れに汚れまくって嫌気がさし環境を再構築する前にお試し環境をGCP&Dockerで確認したお話です。
前提条件
- GCPを利用したことがある。
- sshポートフォワードを理解している。
- 最低限のDockerコマンドが使える。
1. GCPでComput Engine インスタンスの作成
- コンテナ → 「この VM インスタンスにコンテナ イメージをデプロイします。」
- コンテナイメージ → jupyterhub/singleuser を記入
※ 詳しくは「jupyterhub/singleuser」をdockerhubで検索する。
2. SSHポートフォワード
command
$ ssh -L 8889:localhost:8888 <SERVER NAME or IPADDRESS>
GCP DockerのJupyterはTCP:8888で起動しているのでそのPortへフォワーディングします。
3. DockerとJupyter-notebookの状態確認
command
$ docker ps -a
表示されたIDでlogを確認する。
command
$ docker logs 6312XXXXXX
logの中にJupyterのTokenつきURLをコピー
result
http://(jupyternotebook or 127.0.0.1):8888/?token=eef40685abe8048368d7d0dee25da7c19XXXXXXXXX
SSHのアクセス元PCのブラウザでJupyterにアクセス。
Browser
http://localhost:8889/?token=eef40685abe8048368d7d0dee25da7c19XXXXXXXXX
接続元Port:8889にアクセスすることでGCPのLocal Port:8888に接続されるのがミソです。
結論
- だいぶ省略していますが4分間ぐらいでJupyterの環境が手に入ります。開発環境を汚すことを考えればかなり相当な効率化(時短)ができます。
- 本来であればPVCからファイヤーフォールの設定やら何やらゴニョゴニョありますがSSHポートフォワードで気にする必要ありません。SSHの制限は最低限やりましょうね。