Docker Desktop (Windows Home)をインストールして動かした(そしてはまった)
DockerをRaspberry Piにいれてみようとしてますが、WindowsでもDockerが使えるようになったと聞き、さっそく入れてみます。
【入門】はじめての Docker Desktop for Windows のインストールと CentOS の仮想環境構築のセットアップ を参考に進めました。途中はまったところは、WSL2にアップグレードしていなかったせいで、そもそもDockerが立ち上がらない、というものでしたが、Windows10 HomeのWSLをWSL2にアップグレードしてみた を参考にアップグレードし、無事に進めました。
Dockerを入れた理由は、Tensorflowを環境構築無しで使えるからです。Docker入門 ~Tensorflowも超簡単に!!~ この記事を見てなんてすばらしいんだと思ったからです。そしてこの記事通りに進め、jupyter labをインストールし、
root@2399c584d711:/# jupyter lab --ip=0.0.0.0 --allow-root
を実行し、無事にjupyter labにアクセスできました。
ここまでは順調でした。その日、dockerのコンテナを保存することを知らず、そのままPCの電源を落とし、次の日、立ち上げ、Dockerに接続しようとしました。この時、コンテナの中にTensorflowがいなかったため、Docker DesktopのImagesの中から、
でRUNを押し、1228という名前で動かしました。そしてもう一度jupyter labをインストールし、接続してみようとすると…
あれれ、アクセスできなくなってしまったのです。
前日と異なる点を思い返すと、Windows Power shellからDockerのコンテナを起動していないことを思い出し、使用したコマンドを見返すと
PS C:\Users\yuuta> docker run --rm -it -p 8888:8888 tensorflow/tensorflow:latest-py3
となっていました。間違いなく、このpオプションでポートを指定しています。一方、Docker DesktopからRUNするとき、ポートを指定していませんでした。Docker DesktopのRUN時にポートを選択できると思い、オプションを見てみると、
このように出て、ポートを指定することはできないみたいです。仕方なく、Windows Power shellで
PS C:\Users\yuuta> docker run --name tensorflow-container -it -p 8888:8888 tensorflow/tensorflow:latest-py3
として、コンテナを立ち上げました。ちなみに、ポート指定して立ち上げたコンテナは、
のように、PORT:8888 が追加されて表示されます。これで一件落着。