Slide 1

Slide 1 text

Docker初⼼者が、 DockerContainer+VsCodeで Pythonの開発環境作るまで . @vinorthman 2019/12/20 はんなりPythonの会 #23 LT会

Slide 2

Slide 2 text

・01.⾃⼰紹介 ・02.はじめに”おことわり” ・03.なぜこのテーマでLT会出るのか ・04.いつも話題のPython開発環境 ・05.今時Dockerっていう環境作りに便利な仕組みあるんじゃないの︖ ・06.新たなエディタの登場(VScode)と次の展開 ・07.VScodeのオプションで画期的なものが︕ …dockerの管理がGUIで ・08.おさらい…Dockerのライフサイクル …まずは、⾃分で流れを描いて理解してみた ・09.VScodeとDockerのライフサイクルの関係 ・10.具体的にVScodeからDockerContainerにattachしてみよう! ・最後に

Slide 3

Slide 3 text

・01.⾃⼰紹介 @vinorthman : ⾼橋 びわ湖のあるところ北の⽅在住⼤阪通勤 ・欧州鉄道好き(特に実際に乗⾞したSBB,Rhb,DB) ・カミさんと美術館巡り(関⻄&上野あたり) ・アナログシンセ周りなどなど ・⾷べ歩きも多し。

Slide 4

Slide 4 text

・02.はじめに”おことわり” これからお話する事は、私@vinorthmanが、遠回りしながら現在のpython開発環境 にたどりついた物語です;;; もっとよいやり⽅があると思います。 短い時間なので、⼗分な説明できないと思います。 今⽇は、こんなやり⽅あるんだなーと感じていただき、 少しでも興味持たれた⽅は、もっと詳しく解説している、 多くの技術ブログ等で確認していただきたく。

Slide 5

Slide 5 text

・03.なぜこのテーマでLT会出るのか ① はんなりPython 相談会などなど、いつも開発環境が話題に︕ ② 2019年⾃分のpythonがらみニュース ・ハード︓エッジPC(GPU搭載)+Pythonで画像認識(はんなりPython #20発表会にて) ・ソフト︓コレ →こんな開発⼿法あったのか、純粋に驚き ⾃分のMacやPCの環境汚さずに、(これ重要) ⾊々なPythonを含む開発&実⾏環境 とっかえひっかえ試せるやん︕(これも重要)

Slide 6

Slide 6 text

・04.いつも話題のPython開発環境 みなさん、Python環境どうしていますか︖ 私、これまでは、 ・ローカル (pip,conda) + エディタ ・VM(VM player,virtulbox) + OS(ubuntu,debian) + (pip,conda)+エディタ が⼀般的でした。 (元々サーバ管理者もやっていたのでVmwareで仮想組むのがあたりまえという考え。) 他にもcondaで仮想環境作りが…いちいちコマンド打ち切替⾯倒;; pip,conda併⽤問題、ローカルが汚くなっていく、掃除に⼿間︕(環境変数やら)

Slide 7

Slide 7 text

・05.今時Dockerっていう環境作りに便利な仕組みあるんじゃないの︖ なぜ最近までDocker利⽤していなかったか︖ (あくまで個⼈的な事ですが…) 約2年前、 最初Dockerに触れたのが、ラズパイに代表されるarmPCでIoT試⾏… 当時Docker概念もあまり理解していなかった ⼿順マニュアル通りに配布システムのdocker imageをセットアップしたが… 当時の⾮⼒なarmPCでは、ものすごくレスポンス悪かった;;;いやな思い出。 (それから⾷わず嫌い(笑) …という、くだらない理由;;

Slide 8

Slide 8 text

・06.新たなエディタの登場(VScode)と次の展開 VScodeの登場︕ +様々なオプション(Extension)が開発されるのが特徴 ・python +jupyter … jupyterがブラウザじゃなくてvscodeで ・ドキュメント markdown(Latex⾵) …textで、数式や表など 直ぐにお気に⼊りのエディタに。 ただ快適になってきたが… python⾃体の環境が…(pip,conda混在問題, 新verお試し 環境切替⾯倒 などなど) この部分は、何も変われてないやん︔︔︔︔

Slide 9

Slide 9 text

・07.VScodeのオプションで画期的なものが︕ …dockerの管理がGUIで そんな中、VScodeの様々なオプション(Extension)にDocker管理が登場︕ dockerの管理がGUIで︕ …この頃には、DockerHUBに⾊々なイメージが存在する事を認識していた。 →⼀度Dockerのimage,containerの概念と流れを描いて理解してみるか……

Slide 10

Slide 10 text

・08.おさらい…Dockerのライフサイクル …まずは、⾃分で流れを描いて理解してみた ローカルPC Python 3.8 Image群 Docker HUB tensorf low PHP ubuntu pull Python 3.8 tensorf low Image群 破棄 Image rm create Python 3.8 A Python 3.8 B Container群 (Stop状態) Python 3.8 A Container群 (実⾏状態) start 破棄 rm stop commit Python3.8 B改変 ★すごく簡単に解釈すると… ①DockerHUBから使えそうな image をpull ②imageからcontainerをcreate ③その時利⽤したいcontaner環 境をstartさせて、 ④その環境を利⽤できればよい ★例えば、新しいPython3.8試 したいな〜なら、 これにattachすればよい。 Vscode上でattachして、コード &実⾏できればもっとよい︕

Slide 11

Slide 11 text

・ 09.Vscode+オプションとDockerのライフサイクルの関係(1/2) ローカルPC Python 3.8 tensorf low Image群 破棄 Image rm create Python 3.8 A Python 3.8 B Container群 (Stop状態) Python 3.8 A Container群 (実⾏状態) start 破棄 rm stop commit Python3.8 B改変 ①Doker Image管理 ②Doker Container管理 (実⾏、停⽌、ポート) ③Doker Container接続 (Attach)

Slide 12

Slide 12 text

・ 09.Vscode+オプションとDockerのライフサイクルの関係(2/2) ①Doker Image管理 ②Doker Container管理 (実⾏、停⽌、ポート)

Slide 13

Slide 13 text

・ 10.具体的にVScodeからDockerContainerにattachしてみよう! (1/2) ②Doker Container管理 (実⾏、停⽌、ポート) ③Doker Container接続 (Attach)

Slide 14

Slide 14 text

・ 10.具体的にVScodeからDockerContainerにattachしてみよう! (2/2) コンテナにアタッチし たVscodeが新たな Windowとして開く Python 3.8 64 bit Python 3.8 A Containerへ Attach

Slide 15

Slide 15 text

・最後に …今後 ・様々な環境試してみたい ⇒ pytorch などAI系 画像(Opencvなど)系 もちろん新しいpythonも ・VScodeの様々なオプション(Extension)にKubernetesも︕ Kubernetes(クバネティス) “コンテナ化したアプリケーションのデプロイ、スケーリング、および管理” ⇒最近この勢⼒が⼤きく…ちょっと勉強してみるか…

Slide 16

Slide 16 text

ご清聴ありがとうございました。 (質疑応答)