探検


Docker Part6

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
2021/07/12(月) 06:41:45.42ID:SoKAlVq4
テンプレとかいらんやろ
233login:Penguin
垢版 |
2021/09/14(火) 08:48:48.00ID:UeIZhnu+
>>232
オーバヘッドいってもベアメタル比較で9割以上の性能出るよ
最近の技術はすごいね 頭の中の知識アップデートしてったほうがいいよ!
234login:Penguin
垢版 |
2021/09/14(火) 08:49:47.33ID:UeIZhnu+
そもそもクラウドは仮想マシンって前提でおかしいわ
勉強してからレスしろ
2021/09/14(火) 09:02:48.91ID:FvQYf9ld
>>232
あごめん 読んでもらえば分かると思うけどプログラマー向け環境のことね開発環境ね

それでもサーバー側がリソース潤沢なら VM でもなんでもいいんじゃないのかなと思うよ
それこそプロジェクトによって予算は違うんだからね
以前は VM で動かしていたわけですし今でもそういうプロジェクトは存在するでしょう
2021/09/14(火) 09:03:40.74ID:EDBFDkO9
>>233
それはKVMを使った場合の話
クラウドでKVMは使えないので遅い

どこをソースとしたかちゃんと書こうな

QEMU is very slow
https://forums.gentoo.org/viewtopic-t-1077552-start-0.html

Why VM QEMU is very slow ?
https://superuser.com/questions/1471510/why-vm-qemu-is-very-slow-still-a-newbie-here
2021/09/14(火) 09:06:59.97ID:EDBFDkO9
>>235
サーバーがリソース贅沢って何いってんだ?
クラウドのことを何もわかってないな

クラウドというのは必要なリソースを必要な時に確保する
リソース=コストだ。VMを使ったらその分多くのリソース=コストが必要になる

サーバーだからって贅沢なリソースということにはならない
それはオンプレミスの世界の話
クラウドでは適切なリソースを使う
2021/09/14(火) 11:05:54.54ID:H5kGXPer
>>225
言ってないw
2021/09/14(火) 12:47:19.37ID:FvQYf9ld
>>237
まあ多分同じ認識を持っているんだと思うよ
私もコンテナを利用するし

いくらでも財力があれば富豪的プログラミング的な事が出来るって事だよ
実際はないから多くのケースではコンテナを使うでしょう

で何の話からこんな風になったかって言うとDockerつかなきゃいけないのコンテナ使わなきゃいけないの開発者が?という話があって 別に VM でもいいんじゃないそれはて感じの流れだったんじゃないかな
2021/09/14(火) 14:32:17.54ID:h9vBYTSD
コンテナはLinux上でVMがいらないんだよ
ネイティブに動く
241login:Penguin
垢版 |
2021/09/14(火) 16:00:36.61ID:UeIZhnu+
>>236
視野が狭すぎるよ… よくもまあそんな自信満々に言えるよな
下請け客先常駐の人間か?
242login:Penguin
垢版 |
2021/09/14(火) 16:01:36.96ID:UeIZhnu+
同情するわ
2021/09/14(火) 16:11:03.74ID:ZJsyyecL
>>240
> ネイティブに動く
VMかてふつうは「ネイティブ」に動いとる。
2021/09/14(火) 16:59:22.32ID:h9vBYTSD
>>249
動いてないよ。VMは仮想マシンの中のカーネル経由で動いてる
ホストOSのカーネルを使ってない。
カーネルを二重に使うことになるのがVM
2021/09/14(火) 20:44:32.39ID:ZJsyyecL
>>244
それは「ネイティブ」に関係ない。
システムコールとかがラップされとるだけ。
2021/09/15(水) 07:07:54.23ID:zzKQ30Z0
>>245
システムコールがラップされてるから遅い
どちらにしろ遅いってちゃんと言うようw
2021/09/15(水) 07:11:03.61ID:zzKQ30Z0
qemuのゲストエージェントのインストールが大変というのを付け加えておこう
248login:Penguin
垢版 |
2021/09/15(水) 07:52:32.47ID:xFqsGZKs
このスレには素の状態からオンプレにVMを建てて使う可哀想な人と、それ以外が居るから話がごちゃまぜになるね!
2021/09/15(水) 08:37:44.11ID:zzKQ30Z0
オンプレでもLinuxインストール+DockerサーバーインストールでDockerコンテナが動く

仮想マシンだと何をするんだろうか
サーバーにqemuをインストールするところまでは変わらないが
ネットワークの設定は?ゲストエージェントはどうするのか?
メモリの調整などは?手元で作ったVMをサーバーでそのまま動かすには大変な作業が必要
2021/09/15(水) 08:57:12.17ID:fAxxx1C/
その辺は自動化ツールがありますしおすし

Windows のコンテナはないんだから Windows のインフラを作りたいときには VM になるんじゃないですか選択肢が
2021/09/15(水) 09:57:43.24ID:zzKQ30Z0
その自動化ツールの名前が言えない時点で嘘
2021/09/15(水) 09:58:44.36ID:zzKQ30Z0
>>250
何度言っても理解できないようだから何度も言うしかないが
Dockerはインフラを作るものじゃない
アプリケーションをデプロイするものだ

あとWindowsのコンテナもあるし
無知も大概にしろ
2021/09/15(水) 10:04:42.46ID:fAxxx1C/
>>252
コンテナがインフラそのものではないことは確かです
水道管はインフラですが水道管の中を流れる水はインフラではない あなたはそういうことが言いたいのではないでしょうか

Windows のコンテナについて無知ですみません これは VM を介在しないものなんでしょうか?
2021/09/15(水) 10:25:19.01ID:zzKQ30Z0
>>253
Dockerはアプリケーションを配布するもの
理解したか? YES NO で答えよ
2021/09/15(水) 11:51:31.51ID:fAxxx1C/
>>254
イエス

Windows のコンテナについて Vm を介在しないかはわからかいですか?
2021/09/15(水) 12:44:38.08ID:ZqNjHVDr
DockerスレなのにVMで戦ってるのなんなん?
2021/09/15(水) 12:45:33.48ID:ovxF5TkB
データサイエンス分野だとライブラリ等を一式整えた軽量版仮想マシンみたいな感じで使うことも多い
デプロイ用途というのは単によく使われる一つの用途に過ぎない
別の使い方をしたければ好きに使えばいいだけのこと
2021/09/15(水) 13:24:28.94ID:KBUpmH6g
こわく
2021/09/15(水) 13:25:11.06ID:KBUpmH6g
ミス すまん
260login:Penguin
垢版 |
2021/09/15(水) 14:37:22.85ID:xFqsGZKs
真っ赤なVMおじさんは下請けだからトイレに行かないと5chできない
261login:Penguin
垢版 |
2021/09/15(水) 14:37:40.66ID:xFqsGZKs
かわいそうに
2021/09/15(水) 21:11:40.60ID:boqzh0Rb
平日の真昼間から連投してる連中が何を偉そうに…w
こういう連中の会話って、話のレベルがガタッと落ちるよな。
2021/09/16(木) 00:43:12.22ID:/ej65IL/
>Dockerはアプリケーションを配布するもの
>理解したか? YES NO で答えよ

(笑)
2021/09/16(木) 04:38:03.09ID:vvkxQPnj
また、いつもの、仮想OS とコンテナの違いが分からない、香具師が来ているのか

下の動画の4分ぐらいの所を見てみろ

AWS のECS on Fargate コンテナ内には、2つのアプリしか無いだろ。
永続化するようなOS の機能は、コンテナ外にあるだろ

山浦清透、8/20

【金額公開】Webサービスの運用費用、実際いくらかかっているか1円単位までお見せします
www.youtube.com/watch?v=nRO7pFCdM8E

AWS Solution Architect の資格を勉強しろ。
米国年収では、ついにRuby on Rails を越えて、1,400万円となった!
2021/09/16(木) 07:47:12.83ID:CDw6LkQ4
「こういうDockerの使い方をすると便利ですよ」というだけのことなのに「Dockerはこのように使わなければならない」と履き違えているのはわざとなのかな
2021/09/16(木) 08:01:35.47ID:Wf0kdNdm
単なるコンテナ型の仮想化技術であってそれ以上でもそれ以下でもないのに勝手にデプロイ専用ツール扱いされてもね
2021/09/16(木) 08:11:55.50ID:Nsay75qU
>>265
「DockerはVMと同じような使い方をして、VMと比べなければいけない」
と履き違えてるよねw

VMと比べてなんかいないんですよ
2021/09/16(木) 08:15:26.19ID:Nsay75qU
>>266
Dockerはデプロイ専用じゃなくて
デプロイ機能が強化されたツール

だから単なる仮想マシン技術では、デプロイには適していない
という話をしてるんだよ
2021/09/16(木) 08:21:13.27ID:Nsay75qU
Dockerがアプリのデプロイに適しているところはたくさんある
VMの構築なんか数ヶ月に一回やればいい程度だろうが
アプリだと一日に何回もやらないといけない
アプリ更新のたびにイメージの更新の必要がある

そういった超強力なツールが、VMとしても使えるからと言って
Dockerの一部でしかないVMだけの範囲で比較するのはフェアではない
270login:Penguin
垢版 |
2021/09/16(木) 08:26:34.44ID:7A/5umaX
CLIツールの配布手段としても使えるだろ
どんなディストリでもdocker runだけで手軽に使えて便利

>>2は勝手にWebアプリ限定にしてておかしい
271login:Penguin
垢版 |
2021/09/16(木) 08:33:24.67ID:r3Bd7drd
>>262
その時間に退勤?かわいそうに
272login:Penguin
垢版 |
2021/09/16(木) 17:31:11.55ID:pPz1dL/M
社内向けのちょっとした本番環境作るのにもDocker便利だから別に開発とか社外向けの本番サイトとか規模の差でしかないと思うけど…
2021/09/16(木) 17:42:43.32ID:VHa6Mzir
>>270
これ嫌い
コマンドラインはシングルバイナリで頼むわ
2021/09/17(金) 01:13:59.17ID:Zhy+lgLK
dockerで個々につくったのが10個、20個同時に組み合わせて使うとか、普通の家庭用PCで大丈夫なの?
2021/09/17(金) 02:27:42.61ID:6lQ2RkBp
家庭用PCてなんや?w
性能にこだわらなきゃなんでもええやないか。
用途次第。
2021/09/17(金) 09:31:33.19ID:1FjV2GXh
>>274
Dockerは個々に作ったアプリを包むだけのラッパー

普通の家庭用PCで10個、20個のアプリを
お前は組み合わせて使ってるんだろ?
なら動くに決まってるだろ

仮想マシンじゃねーんだからさぁ
仮想化されたハードウェアをいくつも変換かまして
二重にカーネル経由してなんて無駄なことしてないの

Dockerはネイティブに動いてる
2021/09/17(金) 12:30:03.42ID:JP7M6SiK
家庭用 PC って書いてあるから開発用途なんじゃね
Windows Mac の場合はネイティブに動作しないで乾癬仮想化かませてるんだよね?
2021/09/17(金) 13:11:06.32ID:6lQ2RkBp
いや、ネイティブ。
仮想マシンがあってもネイティブはネイティブ。

非ネイティブで実用的な速度になるわけないやろ。
2021/09/17(金) 13:23:58.09ID:JP7M6SiK
え
mac → virtualbox → linux → docker
ちゃうの

オーバーヘッドは出てるんちゃう?cuiだから感じにくいだけで
2021/09/17(金) 14:39:33.85ID:6lQ2RkBp
オーバーヘッドとネイティブは関係ない。
別の話。
2021/09/17(金) 15:04:42.87ID:AZPx7cEf
ネイティブの対義語って何なの?
2021/09/17(金) 15:25:21.24ID:JP7M6SiK
仮想マシンで動作させる Windows をネイティブに動作する Windows と言いたいのかな

対するのは Windowsのシステムコールを再現しようとするwineなどのエミュレートソフトウェアかね

後述が非ネイティブだとすれば現実的な動作速度とは関係なくね?
>>278
2021/09/17(金) 16:13:09.37ID:1FjV2GXh
>>279
仮想マシンだとアプリごとにOSイメージが必要となり
仮想マシンの起動が必要になり仮想マシンの数だけメモリが必要になる

DockerはLinuxだと、仮想マシンが0個
WindowsとmacOSだと、たった1個だけで
10個、20個のアプリを動かすことができる
もちろんそれぞれのアプリは隔離されている
2021/09/17(金) 17:00:12.49ID:6lQ2RkBp
>>281
エミュレーション?
でも、そんな簡単でもないなあ。

>>282
そういう環境としてのエミュレーションは、システムコールやAPIの差し替えとかラップとかフックとかやろ。
それだけなら、バイナリの動作自体はネイティブといえる。

何が言いたいかというと、こういう文脈でネイティブ云々は意味がないのでは、と。
オーバーヘッドの重さは、エミュレーションレイヤーのつくりによる。
2021/09/17(金) 17:00:36.15ID:JP7M6SiK
>>283
その通りや
君の言うネイティブというのはLinuxの透過ファイルシステムと隔離機能を利用するという意味なのだね
それが例え仮想マシンの上で動作していても
2021/09/17(金) 19:21:43.13ID:1FjV2GXh
>>285
Linuxだと仮想マシン上で動作してないから
ネイティブだって言ってんだろ
頭悪いのか?
2021/09/17(金) 20:07:06.92ID:JP7M6SiK
>>286
上で仮想マシンがあってもネイティブはネイティブって書いとるの何やねん
2021/09/17(金) 20:28:18.66ID:OhIQn8oE
勝手な「ネイティブ」
289login:Penguin
垢版 |
2021/09/17(金) 20:50:06.83ID:hMfUsT1O
リンドウズでも動かせたら買うのになぁ
2021/09/17(金) 23:44:32.55ID:Psy7jZf6
>>274
Windows 10, WSL2, Linux, Docker では、8GB メモリじゃキツイ。
最低16GBで、32GBが推奨

例えば、Ruby on Rails なら、

Windows側で、VSCode とブラウザでテストする。
Linux側で、Rails, Node.js、データベース

コンテナが10個とかなら、自動的にコンテナ数を増減する、Kubernetes(k8s)。
Dockerに付いてる

今は、ほとんどの企業がk8s
291login:Penguin
垢版 |
2021/09/18(土) 09:14:30.28ID:25LGTct8
>>290
日本語でおk
292login:Penguin
垢版 |
2021/09/18(土) 10:18:19.11ID:5RkeF0OL
>>290
ユーチューブで勉強した人?
それともしょうもないスクール生?
2021/09/18(土) 10:28:34.35ID:LtrqYpYH
>>287
Linuxの上で仮想マシンを動かしてるわけじゃないという意味だよ
知らんの?DockerはLinuxの上で直接プログラムが動いている。
2021/09/18(土) 10:30:17.95ID:LtrqYpYH
・Linux←仮想マシン←Linux←プログラム
プログラムはネイティブで動いていない

・Linux←プログラム
プログラムはネイティブで動いている
2021/09/18(土) 11:40:46.62ID:ATNz38rb
>>293
それは当然の認識で前提だった

そこから話が派生して他 OS の話になっていたのだよ流れをもう一度読んでもらえば分かると思うけど
2021/09/18(土) 12:07:57.99ID:Y77gbyWS
コイツラ何で「コンテナは高機能なchroot」で済む話をダラダラくっちゃべってんの?
2021/09/18(土) 12:28:44.68ID:QaMCuwDY
ぜんぜんちゃうからや。w
あたりまえやけど。w
2021/09/18(土) 12:36:11.50ID:v9IW3RWq
chrootもDockerコンテナもOSのプロセス制御の拡張に乗っかってるだけ
活用具合がだんちだけど
299login:Penguin
垢版 |
2021/09/18(土) 18:50:12.13ID:LBeQjFp1
chrootって分離してくれるのファイルシステムだけじゃね
イメージレジストリとかボリュームマウントとかの概念もないし

dockerはプロセス・ネットワーク分離とCPU・メモリのリソース制限も出来る

停止しない限り、マシンを再起動したらコンテナも再度立ち上がるプロセス管理機能もある
2021/09/18(土) 18:52:21.76ID:MwF/R7pZ
chrootとcgroupsだな
2021/09/18(土) 19:47:53.89ID:4GGBPZGE
>>299
リソースの分離はDockerというかcgroupsとかnamespaceに依存した機能
Dockerだから出来るというわけじゃない
2021/09/18(土) 20:01:19.89ID:/Ro1rAwH
え、そこから教えなきゃいけないレヴェルなんか
ツイッタでイキイキしてる奴らの方が上じゃんw
2021/09/18(土) 20:27:31.97ID:nvreCKAS
最近はマイクロVMによって、仮想マシンとコンテナの境界は曖昧になりつつある
コンテナは分離技術としては不完全で、セキュリティ観点では全く当てにならない
だからVM立ち上げてその中でコンテナを動かすの
2021/09/18(土) 20:45:58.09ID:wWq9o7vc
またそれか


アプリをデプロイするためにコンテナ作ったでー

分離技術は不完全、セキュリティでは〜

だから、アプリをデプロイするためのものだって言ってんだろ


仮想マシンの代わりとして使おうとしたり
セキュリティのために使おうとしたり
最初っからそんなもののために作ってねーよヴァーカ
2021/09/18(土) 20:48:55.24ID:v9IW3RWq
>>303
そんなケースバイケースな話されても
セキュリティ要件上オンプレ且つVM不可な案件もあるんだよ
了見の狭い
2021/09/18(土) 21:09:36.94ID:XZXAl8x8
シングルバイナリのがいいよね
2021/09/18(土) 21:22:40.73ID:wWq9o7vc
>>306
RubyやPythonをシングルバイナリにできるならね
308login:Penguin
垢版 |
2021/09/22(水) 03:06:23.55ID:CNZL+nOt
でも、まあ、仮想マシンみたいに、コンテナという単位で取り扱うことができるから、
内部動作はホストでネイティブで動作しているにせよ、便利だからそれでいい。
2021/09/22(水) 10:04:23.30ID:9upX+YPs
まだDスレでVMの話してんのか・・・
2021/09/29(水) 01:50:20.89ID:wZ4RzVqX
Dockerコンテナはそのままで内容を改変する度に、新しくイメージ化(コミット)しています。

縦がコンテナで同じものです。

□→◯イメージ1
↓
コンテナの内容変更
↓
□→◯イメージ2
↓
変更
↓
□

このようにするとき、変更の度合いに比べて、
イメージサイズが大きくなりすぎるのはなぜなのでしょうか。
簡単にサイズを最適化する方法はあるのでしょうか。
311login:Penguin
垢版 |
2021/09/29(水) 08:14:09.86ID:YEJ2LKc4
何をどう変更したのか書かれてませんが
2021/09/29(水) 08:31:58.65ID:LGmiJ87r
docker commitは現在のイメージの上に現在のコンテナによる変更内容を差分としてレイヤを追加する
だからcommitするたびにイメージサイズは肥大化する
これ言うとまた荒れそうだけど、dockerを仮想マシンのように使ってはいけないと言われる大きな理由の一つだね
2021/09/29(水) 09:29:10.37ID:PTBGL/ew
更新の都度buildで構築できるように組むのが一般的
もし動的な更新部分を外部のリポジトリ等から取得できないなら
マルチステージで旧イメージからコピーするとか
314login:Penguin
垢版 |
2021/09/30(木) 04:20:19.51ID:UPXTKWDc
>>312
レスありがとうございます。

おっしゃっているのは、コンテナからイメージを作成して、
そのイメージから別のコンテナを作成し、また新たにイメージを作成する場合ですよね。
(ちがっていたらすみません)

□→◯→□→◯・・・


しかし、>>310のように、
同一コンテナから時系列でイメージを作成しているのですが、
コンテナの変更の割に、それらのイメージが大きく膨らむのです。

同一コンテナ上での変更だから、同一レイヤで更新が成されるはずです。
そうやってレイヤの更新の都度、そこからイメージをコミットしても、
無駄に大きくはならないだろうとにらんだのですが。

>>313
buidができるように設定を組めたらよいのですが、まだそこまでシステムが固まっていないんです。
2021/09/30(木) 05:48:31.41ID:07QQ7WUk
>>314
あのな。お前のそのレスの内容から
Dockerの完全な初心者だってことバレバレなの

お前は知らない単語を聞いた時、その単語の意味から
こういうことだろ?と思い込んで突き進んでるだろ
思い込みを書き込むんじゃなくて
知らない単語をちゃんと調べてDockerを勉強しろ

システムが固まってないんじゃない
お前は>>313が言ってることがわからないだけだ
2021/09/30(木) 06:31:05.88ID:579orQhE
あーあー確信ついちゃった・・・発狂するぞw
2021/09/30(木) 07:22:35.63ID:Ry/9iZsP
○核心
318316
垢版 |
2021/09/30(木) 07:29:50.49ID:IFa/bopz
>>317
おい馬鹿ヤメロw
319317
垢版 |
2021/09/30(木) 07:57:11.04ID:IdnADHxV
>>318
ではではタメ口ならいい?
2021/09/30(木) 10:00:56.73ID:wNszxq9T
>>314
コンテナの変更って何したんだ?
commitでイメージに追加される新たなレイヤは元のイメージとの差分だから、
愚かにもdockerを仮想マシンのように使っているならログのローテーションやパッケージの更新などで常に元のイメージとの乖離は拡大し続け、
その乖離の分だけレイヤのサイズは増大する
事実を疑う愚かな悪癖を捨て、まずはそれだけの差分が実際に生じている事実を認め、その差分の内容をdocker diffなどで調べろ
2021/09/30(木) 10:40:03.93ID:xd5ZQgd4
まだシステムが固まってないんなら別に肥大化してていいんでは
fixしたらホスト側からCOPYしてbuildしたらいいだけ
2021/09/30(木) 13:37:22.31ID:NxaoZCFw
>>310
> Dockerコンテナはそのままで内容を改変する度に、新しくイメージ化(コミット)しています。

そんな使い方はしてはいけません
2021/09/30(木) 13:40:00.89ID:NxaoZCFw
作るのはイメージだけで、コンテナからイメージ作るとかしないんだわ
してはいけないって言っておこうか?
最終手段として用意してあるだけでdocker commitなんて全く使わない
それが必須な時点で使い方が間違っている
2021/09/30(木) 15:45:33.98ID:9I0gNfoI
requirements.txtで独自ライブラリをgithubからインストールして
あとからライブラリ更新したとき
その更新は適用されない
適用させるにはまたゼロから(imageから)構築し直さなきゃいけない
って認識でいいでしょうか?
2021/09/30(木) 15:46:38.03ID:9I0gNfoI
補足
>requirements.txtで独自ライブラリ
Dockerfileからpip install requirement.txtです
2021/09/30(木) 20:18:42.43ID:efVV6/dt
Dockerは更新されたとか関知しないのでrebuild要
2021/09/30(木) 20:41:47.03ID:f/9P/cfS
そういうときは更新検知用コンテナ入れるけどな
2021/09/30(木) 20:54:50.93ID:lprEzDME
>>324
だからDockerfileでイメージのビルドが簡単にできるようになっていて
レイヤーのキャッシュで高速にリビルドが完了するようになってる
2021/09/30(木) 20:56:21.59ID:lprEzDME
イメージは消してビルドし直すのは当たり前で
それはバイナリの実行コマンドを削除してビルドし直すのと同じこと

実行コマンド(イメージ)の中にデータを入れるな
データが入ってなければ、イメージの削除とリビルドも
何も気にすることがない作業だ
330310
垢版 |
2021/10/01(金) 03:31:36.74ID:sILjv0wo
当初の質問から外れてしまっているのですが、
本質的な話だと思います。

ぜーーんぶ、設定に費やしたコマンドを明確に表して、buildせよっていうことですね。
それはつまり、コンテナの中でviでせっせと作成したスクリプトも全部、予め用意してbuildせよってことですよね。
でも、まだやろうと思っていることが試行錯誤で、固まっていないんですよ。
2021/10/01(金) 05:11:59.96
>>326-329
なるほど・・そういうものなんですね
まだよくわかっていませんが勉強してみます
2021/10/01(金) 09:08:24.27ID:qk1/sKj0
>>330
Docker Hubなんかにあるベースイメージつくるなら最終的にDockerfileに全記載となるけど
試行錯誤中はcommitでも外部ボリュームマウントでもぜんぜんOK
アプリ開発なら特定のディレクトリしか使わないようにし(他には設定ファイルくらい)
開発中はディレクトリ全体をホストに置いてマウントするのが常套
buildではそのディレクトリ全体をCOPY(開発中はマウントで隠れる)
適当なプロジェクトのDockerfile, compose.yamlみたらわかる
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況