jariの日々

jariの日常の記録(不定期更新)

超個人的Docker メモ(未完成版)

完全に日常の話でもなんでもないけどブログにまとめておくと今後の時分の為にいいので記事を書きます。理解が浅いのでダメなところはご指摘いただけると幸いです。

 

研究で動かす必要があるプログラムがdocker で配信されていたので、dockerを使う必要がありました。この記事は自分がdockerを使う上で困ったことと、それに対して調べて参考になったネット上の記事のリンクを張っていくだけの備忘録のつもりです。備忘録に加えて疑問点を列挙しておくことでどこで躓いているのかを認識するのと、誰かが助けてくれるんじゃあないかという淡い期待を抱いています。

 

dockerとはなんなのかというのは自分自身まだよくわかっていなくて、ざっくりとした理解ではプログラムのコードだけではなくプログラムを動かす環境ごとコンテナとして配信するものであると思っています。環境毎提供することによって、実行するユーザの環境によってプログラムの動作がうまくいかないなどのバグを防げるのだと思います。

paiza.hatenablog.com

dockerのインストールはdockerのHPに書いてあることをそのまま行いました(Ubuntu 14.04 LTS)

docs.docker.com

コンテナの起動とかはインストールの際にhelloというコンテナを使ってやりかたを覚えました。上のリンクのインストールのところにそのまま書いてあると思います。

dockerのコンテナはrunで起動するたびに新しくなるようなので一度プログラムを起動してコンテナを終了してまたrunで起動すると実行結果が失われてしまうことになります。再び実行する場合はrunではなくstartでいいみたいです。下の記事に詳細があります。

scriptlife.hacca.jp

 

疑問点とか

 

自分が動かしているプログラムがコンテナ中にpythonファイルがあるんですが実行できないのはコンテナ中にpythonが入っていないからなのでしょうか。だとしたら頭悪すぎるのでなにか実行方法があるはずですし、なんなら既存のコンテナ内にpythonの実行環境を構築する方法があるのではないでしょうか。

またなにか思い出したり必要なことがあったら記事の続きを書きます。

 

追記)9/23

 

Dockerコンテナ内のファイルのファイルのコピー

作業している中でコンテナ内だけではなくてホスト側で同じファイルをつかって検証する必要が出てきたのでそのときのメモ。

isoittech.hatenablog.com

この中に書いてあるように

sudo docker cp <コンテナID>:(コンテナ内のファイルのパス) ホスト側に置きたい場所のパス

でいい。ファイルのパスはコンテナ内でpwdでも使えば/root/hogehogeと出てくるはず。

ホスト側のパスはカレントディレクトリでいい場合は ”.”(ドット)でいいらしい。