cloud server(AWS)でEC2インスタンス(host)を作成し、インスタンス上でdocker hub(kaggle/python)からdocker imageをpullし、そのimageからcontainerを作成し、jupyter notebookを開きたいと考えています。
やったことを並べると、
①AWSでEC2インスタンス(ubuntu base)の作成
②作成したインスタンスにsshで繋ぐ
terminal
1$ssh -i ●●.pem ubuntu@<作成したEC2インスタンスのpublic DNS>
③インスタンス上でdockerをinstall
terminal
1$sudo apt-get update && apt-get install docker.io
④必要なdocker image(kaggle/python)のpull
terminal
1$sudo docker pull kaggle/python
⑤docker imageからcontainer作成でjupyter notebookを実行
terminal
1$sudo docker run -v $PWD:/tmp/working -w=/tmp/working -p ⭐️8888:⭕️8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
すると、
terminal
1????http://(適当ぽい文字列A):8888/?token=(適当ぽい文字列B)&token=(適当ぽい文字列B)
といった形でhttpが表示されます。
localブラウザにこれを入力して、文字列Aの部分を"localhost"に変更してenterを押すと、
"localhostで接続が拒否されました"+"ERR_CONNECTION_REFUSED"となりlocal→(host)→container(jupyter notebook)と接続ができません。。。
以下試したことです。
・local→host(インスタンス)→container(jupyernotebook)は上記の通りうまくいかなかったので、localで③④⑤を実行し、表示されるhttp~を打ち込み、文字列Aを"localhost"に変更して確認→問題なくjupyter notebookが開かれました
・上記でERR_CONNECTION_REFUSED、と出ており、まずfirewallを切ってみました。→変わりませんでした。
・次にプロキシ設定を確認。受動FTPmodeが選択されており、プロキシ設定を適用しないホストとドメインに"*.local"が入っている状態でした。(よくもわからず)FTPmodeの選択を無くしてtry→変わりませんでした。
・⭐️部分がhost(インスタンス)のportで、⭕️がjupyter notebookのdefault portなのかと理解しています。⭐️ポートの番号を作成したインスタンスのセキュリティグループ→インバウンドルール→カスタムTCPで⭐️ポートに相当するポート番号をポート範囲、に打ち込み開いてあげる。→再度上記の流れ実行→変わりませんでした。
いくつか実行してみて、問題点は以下2点なのかと思っています。
I)ポートの問題(いまいちポートについて理解しきれてないのですがどこの設定を変更すべきなのかわかっていません。。)
II)(あまり関係ないかもしれないですが)????で表示されるアドレスに"token"が2個出現している(参考にしたpageでは1個の様です)
長くなってしまい恐縮ですが、対応策わかります方がいらっしゃいましたら、ご教授頂けますと幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。