・ことの発端
当方、情シスやってます(2年目のペーペー)。 pythonによるテキスト解析を行ったところ、 pipやらcondaやらでのライブラリインストールしすぎによるよく分からん不具合に見舞われまくった。 元々ML界隈の情報収集は積極的に行っておりdockerという単語をちょくちょく見ていたが、 ここでようやくコンテナを活用することの重要性を理解する。・結論
よくわからなくても取り合えず先にコンテナの技術を学ぼう・コンテナとは?
ざっくりとPCの中にPCを起動するイメージです(仮想化とジャンルとしては一緒)。 幼いころ:「PCの中にPC立てたらファイルとかどこにあるかわからなくなるやろ・・・」 今:「わけわからんことして悪影響でてもすぐ切り捨てられるようにしたい」というわけで、
コンテナ使う=皿洗うのが面倒な人が皿にラップをひいて食べ終わったら捨てるのと同じ感じですね。
それ以外にもホストOSをそのまま使える(仮想化技術との違い)など、
色々とメリットはあるみたいですが、仮想化全盛期の時代を知らないので、
正直どうよくなってるのかはわかりません(爆)。
で、そもそもどういう時代背景で仮想化・コンテナ化が活用されるようになっているのかというところですが、
ユーザー間の開発環境の差を均一化するためにできたものとされています。
ここでようやくことの発端に戻るのですが、pythonもバージョンによって
使えるライブラリ(=excel関数のようなもの)が異なるようなのです。
個人で使うPCを自分用にカスタマイズしてあるのは当然ですが、
他人と共有する場合や、開発環境⇒本番環境への移行など、を踏まえるとマストなわけです。
近年のゲームで例えるならばPS4,PS5で同じセーブデータを使ってゲームするようなものですね。
これはありがたい。
当初はチーム間でのシステムテストのためだけに役立つのだからバリバリコードを書く立場ではない情シスには
必要のないものだと思っていました。しかし、上に記載した通り、自分だけの場合でも役に立つものですね。
サーバー側のCI/CDみたいな概念ですかね(適当言ってたらすみません)。
・で、何をハンズオンすればいいの
とりあえず⇓に従って、dockerコンテナの起動・停止を学びましょう。 https://tech-lab.sios.jp/archives/19073個人的にハマったポイントとしては、
・imageとrunは違う。imageはデスクトップにあるだけ。runはソフトを立ち上げている状態。
・sudoは実行できなかった。管理者アカウントではないからだからと想定。
・imageIDとコンテナIDは異なるので混同しないように。