はじめに
Dockerの勉強をぼちぼち始めてて
なんとなくわかった気になったので実践編として
Docker上で何か使ってみたいものを立ち上げてみようと思い立ち
いざやってみたら、結構ハマったので何にハマったのかと
結局何が問題だったのかを記録として残す
参考にした資料
基本的な構築手順は
Dockerを使って5分でJupyter環境を構築する
を参考にしました。
結論
これがすべて。細かい解説はあと回しで最終的にやったことはこれだけになります。
### Docker Toolboxにて
1. $ docker pull jupyter/scipy-notebook
2. $ docker run -v `pwd`:/home/jovyan/work -p 10000:8888 --name jupyter jupyter/scipy-notebook
3. $ docker-machine ip
4. (Webブラウザ)[docker-machin ipで出力したIP]:10000にアクセス + トークン認証
どこでハマったのか?
Dockerで立ち上げたアプリをローカルPCのブラウザからアクセスできない。
この一点に尽きる。
何が問題だったのか?
参考にしたサイトでは
「ブラウザを起動して、http://127.0.0.1:1000でアクセスしたらOK」と書かれていたけど
自分の環境で起動したWebブラウザではなぜか「このページを表示できません」と表示され表示されなかった。
試したこと
いろんなサイトを参考に色々試した歴史をメモ
その1:WindowsDefenderが悪さしているかもしれない疑惑
⇒停止させてみたけど、解消されず。。。
その2:我が家で導入しているアンチウイルスソフトがアクセスブロックしているかもしれない疑惑
⇒停止させてみたけど、解消されず。。。
一応、ソフトのアクセスログを見たけどブロックしている形跡なし
その3:サイトを参考に問題の切り分け
⇒Dockerコンテナで起動したサーバにアクセスできないときの確認と対処方法に従って問題の切り分け
⇒以下のことがわかった。
・起動したコンテナ上でjupyter-notebookのプロセスは動作している
・curl http://127.0.0.1:8888では応答がなかったがエラーも出なかった。
curl http://127.0.0.1:10000ではエラーが出た
このことから、レスポンスらしいレスポンスはないけど、8888ポートで動作していることはわかった。
⇒このとき進展はなかったけど、「ひょっとしてローカルからコンテナへアクセスするときのIPが違うのでは?」
という仮説が生まれた
その4:Dockerが払い出しているIPアドレスを確認してそこに向かってアクセスする
⇒dockerで立ち上げたアプリケーションにアクセスできないという自分の悩みにピタっとハマるサイトを見つけた。
これにより解決。
さいごに
めでたし、めでたし