そのたおおぜい

研究とか英語とかプログラミングとか

Dockerを初めて使ったのでメモ

大したことはしていないけど,とりあえずメモっておく.

Dockerのインストー

OSがWindows10の Home なので,Docker Toolboxをつかった.インストールの仕方はこのページが詳しい.

devcenter.magellanic-clouds.com

裏でVirtualBox経由でLinuxが動いているので,世間一般にあるコマンドもWindows上で普通に使える.良いですね.

とりあえずUbuntuでも使ってみる

sudo docker run -i -t ubuntu:14.04 /bin/bash

このコマンドで動く.-i -tで起動してそのままターミナルに入れる.この時,いちいち事前にパッケージをローカルに持ってくる必要はない.いきなりこのコマンドを入れるとパッケージをダウンロードしてくれる.便利だ.あとは普通にUbuntuできる.楽しい.

データサイエンス用のコンテナを使うまで

github.com

こんなものが存在すると聞いて飛び上がって驚いた.というわけでとりあえず使ってみる.READMEのコマンドを実行.

docker run -it --rm -p 8888:8888 jupyter/datascience-notebook

ただし,これだと,表示されるURLからnotebookにアクセスできない.理由がissuesとQiitaに書いてあった.

github.com

qiita.com

さっきもちらっと書いたけど,Docker Toolboxは裏でDocker用にVMが別途動いている.つまり,VMで動いているipythonにアクセスしようとした場合,VMを経由してアクセスする必要がある.具体的には,VM側の設定を開いてポートフォワードするようにしてあげれば良い.

f:id:hagyou:20170722194931p:plain

VirtualBoxGUIで立ち上げて,該当するDocker-machineを選択(特に何もしていなければdefault)して①高度→②ポートフォワーディングを選択する.

f:id:hagyou:20170722194952p:plain

①で項目を追加,②に適当な名前,ポート番号を入力.これでコンソールに出てくるnotebookのURLをそのまま利用できるようになる.

編集したコンテナを保存

これ,結構戸惑ったので書いておきたい.Dockerで普通にコンテナを終了してもう一回立ち上げると 作業内容が保存されていない .もちろん,保存する方法はあるが,その場合,作業したコンテナをDockerのイメージとして保存する必要がある.イメージをまるまる保存するので,変な話Wordファイルの名前を変えてバージョン管理するみたいな地獄っぽい話のような気もする.

ただこれ,Docker自体の思想というか,使い所のお話が原因だと思っていて(結構適当にしか調べていないので眉唾で聞いてほしい),要するに開発環境を共有することが前提の場合にDockerを使うべきってことなんだと思う.

この辺のページを見れば普通にできる.

ottan.xyz

qiita.com

感想

結局最後の保存の部分が引っかかった.個人でローカルで開発するためだけに使うなら,普通にVagrantでいい気がする.Win10ProならHyper-Vが使えることもあって早いからDockerを使う方がいいってこともあるだろうけど,Homeなら結局裏でVM動いていて重いし,これなら別にVagrantでいいよなと言う気持ち.もちろんサーバなんかに環境をまるまるデプロイことが前提の場合は絶対にDockerの方がいいと思う.

www.slideshare.net

こんなスライドもあった.