なにごとも 継続

博士課程での研究や思ったこと、作業記録、などなど自由に書いていくつもりです

Dockerの使い方 1

導入部分を今日も進めていきます。
今日は環境構築するところまでやりたいですね。
前回では導入をやりました。
あれからDjangoの紹介を読んで、pythonのWeb開発フレームワークであるところは理解しました。
リクエストに対して、view関数が中心に動作して、各段階でmodel関数やtemplate関数を適宜呼び出しているようでした。

では、さあやろう
と思ったら、チュートリアルが限定公開になっているのに気づいた。 まあこのブログは勉強用のメモにしている所もあるけれど、一応リンクは公開用のモノのみにします。

バージョン管理はGitでやって、Docker上に構築した環境でDjangoを動かすらしい。

開発系だとDockerの使い方には慣れた方が良いのかもしれませんね。
Windows10 ではDocker toolboxという代替手段があるようです。

Docker

今日はこのサイトで勉強していく。
去年Dockerについて調べたときはこんな親切なサイトはなかった。調べ直すのって大切だ。

DockerはGitni似ている感じがする。こっちは開発者全員が同じ環境を使って開発するためのツール。
共通のコンテナで作業するためにクラウド上で展開していて、imagepullしたり、imageを指定してrunしたりする。
imageはインストールされているOSやpythonなどをlayerとしてそれぞれパッケージしている。このため、自分の作業環境にすでに存在しているパックはpullせず、容量と時間の節約になる。
imagerunでコンテナは作られる。$docker run {IMAGE名}
runのあとで、コマンドの実行が可能。 $docker run -it {IMAGE名:TAG名} {コマンド}
-itはコンテナ内に入ったあと、自動的に退出しないようにするオプション。

コンテナ名は指定しないと自動的に乱数名を着けられるので、--nameコマンドで名前をつけると扱いやすい。
$ docker run --name {コンテナ名} -it {IMAGE名:TAG名} bash
コンテナを止める場合はexitして、再び入るときresturtする。

Dockerfile

DockerfileはDocker imageの設計図。コレをビルドすることでimageを作ることができる。
これにより、DuckerHubからpullせずに済む。
中身はLinuxの実行コマンドが書かれている、テキストファイル。

Dockerfileに実行コマンドを残すことで、コンテナ内における行動の履歴になり、そのコンテナがどういうコンテナか、わかりやすくなる。

Dockerまとめ

なるほど。認識を改めた。
機械学習系でも実行環境がそろっていれば実行しやすいなあ。

次はGitか、Dockerのインストールをやります。