Google Cloud Platform(以下GCP)やDocker初心者の私ですが、機械学習のために「GCPとDockerでKaggle用計算環境構築 – Qiita」に沿ってがんばって環境構築をしました。
本記事は、環境構築後に「GCP上のDockerでJupyterを使う」際に繰り返し使用するコマンドのメモです。一連の流れに沿って記載しています。
主に自分用ですが、あると便利なコマンド一覧です。
※以下、一通りの環境とCloud SDKは「GCPとDockerでKaggle用計算環境構築 – Qiita」に沿って設定済みとします。
1. GCPのインスタンスを起動
gcloud compute instances start {インスタンス名}
※インスタンス名を忘れた場合:インスタンスを確認
gcloud compute instances list
2. インスタンスへ接続
gcloud compute ssh --zone {ゾーン名} {インスタンス名}
3. Dockerコンテナを起動
docker start {コンテナ名}
※コンテナ名を忘れた場合:Dockerコンテナ名を確認
docker ps -a
4. Dockerコンテナにインタラクティブモードで接続
docker exec -it {コンテナ名} bash
5. Jupyterを起動
jupyter notebook --ip=0.0.0.0 --allow-root
gcloud compute ssh {インスタンス名} -- -N -L 28888:localhost:8888
その後、ブラウザ上でlocalhost:28888へアクセス
※GCPは頻繁に接続が切れるみたいですが、その場合も
gcloud compute ssh {インスタンス名} -- -N -L 28888:localhost:8888
を実行し直すだけで、ブラウザ上に残っているJupyter Notebookを再接続できます。
6. 使用後のシャットダウン関連
Jupyterをシャットダウン
JupyterサーバでCtrl + c
Dockerコンテナ内からインスタンス内に戻る
Docker内でCtrl + p + q
Dockerコンテナをシャットダウン
docker stop {コンテナ名}
インスタンスを停止
gcloud compute instances stop {インスタンス名}
停止しているかどうか確認
gcloud compute instances list
(おまけ)インスタンスとのファイルのやり取り
-
- Jupyter Notebookからファイルをアップロード・ダウンロード可能
- WebのGCPからインスタンスにssh接続したらsshウィンドウからファイルのアップロード・ダウンロードが可能?
あとがき
コマンドがなかなか覚えられないので、困ったときにはこの記事を片手にGCPとDockerを使おうと思います。
なんとなくではありますが、GCP上でJupyterを使えるようになりました。
しかしこのままではつまづきへの対処など、応用が効きません。
dockerの本を読んで体系的に学んでいく所存です。
その他困りごと
-
- ポートのいじり方が分からないので、前に起動したJupyterの関係などで8888ポートが使えなくなった際にはdockerコンテナを一旦停止・再起動しています。
- Dockerでのマウントの再設定方法が分からなくて困っています(docker runすると新しいコンテナが作成されてしまう?)。
参考
-
- GCPとDockerでKaggle用計算環境構築 – Qiita
-
- GCPのComputeEngineインスタンスをコマンドで作成、停止、再開、破棄してみる – Qiita
-
- Dockerコマンドメモ – Qiita
- Dockerコンテナの起動と停止、接続と抜け方を知ろう~attach/start/exitコマンド~ | GMOクラウドアカデミー