[過去ログ]
Docker Part2©2ch.net (1002レス)
Docker Part2©2ch.net http://mao.5ch.io/test/read.cgi/linux/1506574845/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
446: 437 [sage] 2018/10/09(火) 15:41:05.80 ID:a4is0HOD >>444 現実的にもそれしかなさそうですね。 ホストにルートを書いて回避しました。 http://mao.5ch.io/test/read.cgi/linux/1506574845/446
447: login:Penguin [sage] 2018/10/16(火) 14:04:47.68 ID:JjMfngP+ Dockerのインストールは何でこんなにややこしいのかと 説明文を読み進めたらランチャーとは違うものだった Dockと勘違いした http://mao.5ch.io/test/read.cgi/linux/1506574845/447
448: login:Penguin [sage] 2018/10/26(金) 03:04:33.03 ID:UuZWwwD+ Dockerがやはりまだ理解しきれておらず、、、 理解が全然違うか教えて欲しいのだけど、 nginx + uwsgi + flaskでサイトを開発したい場合は、ローカルでコードを書いて、 DockerfileにBusyBox + nginx + uwsgi + flaskを入れるように?設定して docker buildを行うと、書いていたpythonコードと必要なコンポーネントが まとまったdocker imageがサーバー上に出来上がり docker runする事によりdocker imageから生成されてインスタンスが立ち上がる であってる? docker imageがclassでrunするとオブジェクトが出来上がると理解しているのだけれど、、、 http://mao.5ch.io/test/read.cgi/linux/1506574845/448
449: login:Penguin [sage] 2018/10/26(金) 06:35:45.90 ID:xzHCVt/i >>448 なぜあえてクラスとオブジェクトに絡めて理解しようとするのか。 http://mao.5ch.io/test/read.cgi/linux/1506574845/449
450: login:Penguin [sage] 2018/10/26(金) 07:03:02.70 ID:Y5itkZBt >>448 仕事で必要とかじゃなければ無理して理解する必要ないと思うよ 一般庶民が微分積分を理解できないように、一般プログラマにはDockerは難解過ぎる http://mao.5ch.io/test/read.cgi/linux/1506574845/450
451: login:Penguin [sage] 2018/10/26(金) 07:40:58.49 ID:S+WdRTJT >>448 なにを一塊のウェブアプリにしたいかだよ。 まず前提としてflaskだけでも、組み込みサーバーを使うことでウェブアプリとして使える だけど、これは開発用なので公開用としては使わない。なのでflaskだけでは ウェブアプリにはできないという扱いにする では、flask + uwsgi ではどうか? ウェブアプリとして使えるよね (pythonあんまり詳しくないから間違ってるかもしれないが) https://qiita.com/ekzemplaro/items/7757a6544205384e40ad だから flask + uwsgi で1つのDockerコンテナにするのもあり この場合、nginxとはhttpでつなぐことになるかな。 socket経由でできるかはわからない。 nginxはnginxで1つのコンテナにして、2コンテナでシステムを構成する (docker-composeを使えば、複数のdockerコンテナを同時に起動できる) また flask + uwsgi + nginx まで入れてしまうのも良い 前者との違いとしては、例えば静的ファイルはnginxで配信したい場合に 前者なら別のサーバーで配信することで負荷を下げるという構成が取れる その反面2コンテナなので少し面倒になる。使うのがお手軽なのは後者 ま、理解できてないのはこの話じゃなさそうだけどねwww http://mao.5ch.io/test/read.cgi/linux/1506574845/451
452: login:Penguin [sage] 2018/10/26(金) 07:41:20.37 ID:S+WdRTJT >>450 × 一般プログラマにはDockerは難解過ぎる ○ お前にはDockerは難解過ぎる http://mao.5ch.io/test/read.cgi/linux/1506574845/452
453: login:Penguin [sage] 2018/10/26(金) 08:01:47.31 ID:BI6ZyjXf 「一般プログラマ」ってのがどのレベルなのかと。 SESの人足なのか、自社開発でCIが文化になってる開発者なのか? どっちも「一般プログラマ」といえば一般プログラマ(苦笑) http://mao.5ch.io/test/read.cgi/linux/1506574845/453
454: login:Penguin [sage] 2018/10/26(金) 09:37:10.67 ID:UuZWwwD+ >>451 伝わらなくてごめんごめん たしかにコンテナ分けると負荷が下がるとかは知りたいこととはまったく関係ない 今後職場でDockerを使うかもという話が出てて、 インフラチームではないから詳しい構造とか構成は知らなくていいんだけど、開発側からして なにか変わるのか事前に理解したくて。 調べていくとdocker runした後にdocker container pruneすると実行して終了したcontainerが パージされて変更内容がリセットされると書いてあったので、コードはdocker image作成時に コミットしてないとコード消えるのか???ってなってしまったわけなのよ 一般プログラマーからしてdocker imageは関係ないのなら調べるのやめるんだけど、 インフラから事前告知があったので影響あるのかと不安になった http://mao.5ch.io/test/read.cgi/linux/1506574845/454
455: login:Penguin [sage] 2018/10/26(金) 09:58:02.43 ID:S+WdRTJT >>454 C言語とかコンパイル言語使ったことある? dockerのbuildは、C言語などのビルド(コンパイル)と同じ 言語はソースコードをビルドして実行バイナリを作成する Dockerはすでにある複数のバイナリをもとに、Dockerイメージを作成する さて、実行バイナリは、データを保存したらどこに保存されるか? 実行バイナリの中に埋め込まれるわけじゃないよね。実行バイナリの外のファイルに保存する。 実行バイナリ自体は読み取り専用。ビルドしたときに作成したバイナリから変更することはない Dockerも同じように考える。Dockerイメージっていうのはビルドして作成した状態から変更しない 内部的には変更されていてそのデータはどこかに残っていたりするが、そういうのは内部の話なんで忘れる Dockerイメージは読み取り専用で、Dockerイメージをrun(実行)するとプロセスが起動する あ、ここも実行バイナリと同じだね。バイナリを実行するとプロセスが起動する Dockerイメージをrunして作ったプロセス(=Dockerコンテナ)はどこにデータを保存するか? Dockerイメージは読み取り専用なので、当然Dockerコンテナの外のファイルに保存する。 C言語 ・・・ ソースコード -> [Makefileでビルド] -> 実行バイナリ Docker・・・ソースコード等 -> [DockerfileでDockerビルド] -> Dockerイメージ Dockerのソースコード等には本当にいろいろ含まれる アプリのソースコードだったり、nginxだったり。カーネル以外の全て で、コード消えるのか?っていう疑問の答えは、実行バイナリ消してもソースコードをビルドすれば作れるでしょう? Dockerも同じでソースコード等をビルドすれば、Dockerイメージができるんだから何も問題ない http://mao.5ch.io/test/read.cgi/linux/1506574845/455
456: login:Penguin [sage] 2018/10/26(金) 10:06:27.87 ID:S+WdRTJT で、ウェブ開発の際に使う場合に、これじゃ使いづらい場合がある C言語の場合、ビルドしないと動く実行バイナリはできないから これで納得するかもしれないけど、ウェブ開発とかしてると ビルドしなくてもソースコードを修正したらすぐに反映されるわけだ 毎回Dockerビルドしないといけないのは辛い。こういう場合にボリュームを使う手がある データはDockerイメージの外に置くといったけど、ソースコードもDockerイメージの外に置けばいい Dockerイメージの中にはPython実行環境などが入っているけど、ソースコードは含めない ホームディレクトリ以下のいつもの場所をそのまま参照する 当然エディタもDockerイメージの中に入れない。 今までどおりエディタで編集して、実行環境がDockerイメージなっただけ ただね。Dockerイメージで作る実行環境は、本番用環境と同じにだいたいするので デバッグなどはし辛い。だから通常のアプリ開発はDockerを使わないほうが楽だろう だが、いつでも本番用環境を手元で作り出せると、本番用環境でのみ発生するバグなど避けられる 他の人も誰でも本番用環境で検証できるようになるわけだ http://mao.5ch.io/test/read.cgi/linux/1506574845/456
457: login:Penguin [sage] 2018/10/26(金) 10:18:44.97 ID:UuZWwwD+ >>456 すごいわかりやすい説明 コンパイラに例えてもらえると分かりやすいわ ありがとう http://mao.5ch.io/test/read.cgi/linux/1506574845/457
458: login:Penguin [sage] 2018/10/26(金) 10:20:16.70 ID:S+WdRTJT >>454 > インフラチームではないから詳しい構造とか構成は知らなくていいんだけど、開発側からして > なにか変わるのか事前に理解したくて。 インフラが全部やりますっていうのなら、開発側に影響はない。今までどおりだ。 そう今までどおり、開発側で新しいライブラリとか追加や更新しようと思たら インフラにこれ変えたいんですけどとお伺いを立てたり 本番用環境とバージョンが違うとかでバグがでたり そういう今ある問題がそのまま残るという意味で開発側に「影響がない」ということだ Dockerfileはソースコードのリポジトリに追加するのが良い (もちろん分離することもできるが、いろんな問題は解決するのが難しくなる) そして開発側で新しいライブラリとか追加するなら、ソースコードのビルドスクリプトと同じように Dockerfile等をインフラチームではなく開発チームがメンテナンスする。 そして最終的にソースコードのリポジトリから簡単な操作でDockerイメージが作れるようになれば インフラチームはそのDockerイメージを動かすことだけに集中すれば良くなる 開発チームとインフラチームのやり取りが、Dockerイメージを実行する手順だけを伝えれば良くなる。 (例えば必要な環境変数など) 理想は 開発チーム・・・Dockerfileのメンテナンス(Dockerイメージを作成できるようにする) インフラチーム・・・Dockerイメージの実行 なのだが、現実としてDockerはインフラチーム主導で導入されることが多いので インフラチームのサポートでDockerfileを作っていくことになるだろう http://mao.5ch.io/test/read.cgi/linux/1506574845/458
459: login:Penguin [sage] 2018/10/26(金) 10:26:18.88 ID:UuZWwwD+ 今までdocker = vmと考えてたのでファイルの保存などが混乱してたけど、virtualenvの凄い版と考えた方がいいのね http://mao.5ch.io/test/read.cgi/linux/1506574845/459
460: login:Penguin [sage] 2018/10/26(金) 10:29:10.46 ID:S+WdRTJT Dockerを仮想マシンの代わりとしてとか考えてると > 調べていくとdocker runした後にdocker container pruneすると実行して終了したcontainerが > パージされて変更内容がリセットされると書いてあったので、コードはdocker image作成時に > コミットしてないとコード消えるのか???ってなってしまったわけなのよ ↑これとかで、混乱する。 Dockerは仮想マシンじゃないんだよ。 Dockerfileから作成したDockerイメージはビルドした状態から変更しないもの。(もちろん再ビルドはOK) Dockerコンテナに乗り込んで、中身を書き換えて再イメージ化なんてこともしない。 できるけど、通常の使い方ではやらない バイナリに例えれば、C言語のプロセスに乗り込んで(デバッガで?) プロセスのメモリを書き換えて、プロセス部分をディスクに書き出すようなもんだよ そんなことしないだろ? http://mao.5ch.io/test/read.cgi/linux/1506574845/460
461: login:Penguin [sage] 2018/10/26(金) 10:34:41.20 ID:S+WdRTJT > 今までdocker = vmと考えてたのでファイルの保存などが混乱してたけど、virtualenvの凄い版と考えた方がいいのね virtualenvといわれると、少し違和感があるな VMよりずっとましだけど virtualenvは実行環境を作るもの Dockerは実行環境を含めた実行イメージ=Dockerイメージ=実行バイナリの凄い版を 作るものだから http://mao.5ch.io/test/read.cgi/linux/1506574845/461
462: login:Penguin [sage] 2018/10/26(金) 10:39:21.79 ID:UuZWwwD+ >>461 やっとそこの理解ができた インフラがDocker推すのわかるわ virtualenvのpython周りをなんとなくコンテナ化したのとはちがって、OS含めた実行環境コンテナを作れるとなると、ほんといろいろ解決できるな! http://mao.5ch.io/test/read.cgi/linux/1506574845/462
463: login:Penguin [sage] 2018/10/26(金) 10:44:35.53 ID:S+WdRTJT 例えばgoで作られたバイナリは、いろんなものがスタティックリンクされるので 単一のバイナリをコピーするだけで、あちこちでそのまま動かすことができる。 それと同じようにDockerもDockerイメージの中に、いろんなものが詰め込まれてるので あちこちで動かすことができる ちなみにDockerfileでビルドしたDockerイメージはDockerリポジトリにpushしておける (パブリックな公式のDocker hubや、各社プライベートリポジトリ等がある) そうしたイメージは手元でDockerfileからビルドしなくてもpullするだけで使える バイナリをコピーするだけで動かすことができるように DockerイメージをDockerリポジトリからpullしてくるだけで動かすことができる こういうのは開発者にとっても便利だよね。 ウェブアプリだけじゃなくCLIコマンドもDockerイメージ化することができるから goみたいにスタティックリンクされたバイナリが作れない言語で作ったアプリでも Dockerだけが入ってるクリーンな環境で、いきなり実行することもできちゃうわけだ http://mao.5ch.io/test/read.cgi/linux/1506574845/463
464: login:Penguin [sage] 2018/10/26(金) 10:56:20.22 ID:S+WdRTJT >>462 Dockerイメージを新しく(バージョンアップ)したから、 次からこれ使ってーって開発チームはインフラチームに依頼するだけでよくなる インフラが気にするのはDockerイメージを実行することだけ だからDockerイメージが起動さえすれば、物理(or 仮想マシン)の OSを変えることだってできちゃう。 そのDockerイメージが動きさえすれば良いんでしょ?程度の気楽なもん 開発チームは開発チームで、物理(or 仮想マシン)のOSの機能に (カーネル以外)依存しているわけじゃないので、 Dockerイメージのベースとなるディストリを変更したりなんでもできちゃう 物理(or 仮想マシン)のOSが変更になったって?別にOSのパッケージに 依存してるわけじゃないのでどうでもいいよ。程度の気楽なもん いままでDebianベースでやってきたけど、ライブラリのバージョンが古いや Ubuntuに乗り換えよう。なんてことも気楽にできちゃう 客先が使ってるマシンがCentOSだって? Dockerがあれば関係ない。 UbuntuベースのDockerイメージが、そのまま動く 本気でやれば、いろいろ解決するよ。ただそのためには インフラチームに丸投げじゃだめだけどね http://mao.5ch.io/test/read.cgi/linux/1506574845/464
465: login:Penguin [sage] 2018/10/26(金) 11:34:43.60 ID:UuZWwwD+ >>464 ほんとベース理解できたら凄いわこれ 細かいホスト側?の設定はインフラに任せるとして 開発に影響のあるdockerfileの作り方も凝らなければストレートだね これで環境周りのめんどくささからは解放される! http://mao.5ch.io/test/read.cgi/linux/1506574845/465
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 537 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
3.477s*