探検


Docker Part6

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
2021/07/12(月) 06:41:45.42ID:SoKAlVq4
テンプレとかいらんやろ
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みたらわかる
2021/10/01(金) 10:47:04.42ID:7vys4bJF
>>330
だからDockerは試行錯誤しても時間がかからないように
高速にビルドができるようにレイヤーでキャッシュされてる
ビルドするのにやっていることを固める必要がない
試行錯誤をビルドして行えばいいだけ
334316
垢版 |
2021/10/01(金) 11:28:06.55ID:iw5WVqdU
つまり不思議システムってことか
335264
垢版 |
2021/10/01(金) 12:14:37.13ID:1+eftyEl
また、いつもの、仮想OS とコンテナの違いが分からない、香具師が来ているのか

>>264
に書いただろ

山浦清透の動画内の、AWS の構成を見てみろ

開発中は、Docker 外の共有フォルダへbind しておけばよい
336330
垢版 |
2021/10/01(金) 22:04:26.78ID:6U2sEk3X
>>332
わかりやすいレスありがとうございました。
なるほど。

コンテナの「ルートディレクトリ」ごと
ホスト側に移してバインドしておいておけば、
そのコンテナで試行錯誤してもコンテナ自体は太りませんね。
必要があれば、変更のきりのよいところで、
ホストに置いている「ルートディレクトリ」ごとバックアップ取ればいいのかもしれない。

というのは、yumとか、外部から落としてきたtarをコンテナ内で使うと、
どのディレクトリに変更が生じるかわからないので、
いっそのことその「ルートディレクトリ」ごとホストに置いてバインドすればいいと思った次第です。

buildのコマンドで「ルートディレクトリ」全体をコンテナにコピーすればいいわけですね。

最後のところは、目からうろこです。
というのはいちいち設定内容をコマンド化(テキスト化)しなければならないと思っていたからです。
2021/10/01(金) 22:47:56.14ID:/Hb00et2
ひどいバッドノウハウの誕生を目撃した
2021/10/01(金) 22:52:45.09ID:QVlI3i/F
>>332はルートディレクトリ以下全部なんて意図してなかろうに
2021/10/01(金) 23:28:36.66ID:qk1/sKj0
ルートディレクトリでやってみたらいいとおもうよ
パーミッションの問題もあるしchroot環境構築するくらいの難易度で挫折するだろうけど
そこから学べることもある
2021/10/01(金) 23:38:51.17ID:ofQTh0wf
頑なにテキスト化したくないってことは、buildでステップ的に構築しなくていいんでしょ
ならコンテナ内でvi編集でもyum installでもしたものをexportしてイメージとして使えばいいんじゃないの

1から作り直すことはできないけど、いらないんだろうし
2021/10/01(金) 23:54:33.55ID:lS2O9Ywg
だからコンテナは仮想マシンじゃないと何度も言う必要があるわけだよ
わかった?
2021/10/02(土) 18:54:34.74ID:4xlvDTis
月数百円程度でもいいのでplay with dockerみたいにさくっと試せるサイトないかな
2021/10/02(土) 19:00:26.27ID:uYmNQcwI
なんで自分のマシンに入れないの?
2021/10/02(土) 20:32:28.08ID:4xlvDTis
ん?自分のマシンにも入れてるけど?
345316
垢版 |
2021/10/02(土) 22:13:31.52ID:dlGxyKte
自分のマシンで試せばいいじゃんDockerなんだから
346login:Penguin
垢版 |
2021/10/03(日) 08:14:32.12ID:Yq6G9Yo6
Dockerなのにそんなサービス欲しい理由が分からない
2021/10/03(日) 09:13:20.75ID:kh+by+bv
それはそんなサービス作ったエンジニアかだれかに言えよw
2021/10/03(日) 16:50:00.64ID:HRxcvoBP
>>342
お金はらうなら
VPSかりて、リモート接続できるDocker環境つくればいい
2021/10/03(日) 17:03:49.56ID:F59D6Xpk
Google Cloud ShellとかGCEの無料インスタンスで似たようなこと出来るんじゃね
350login:Penguin
垢版 |
2021/10/04(月) 17:53:03.47ID:H0n7wAlc
docker machineの勉強をしようと思ってネット上の記事を色々読んでいたのですが
公式サイトに飛んだら
Docker Machine has been deprecated. Please use Docker Desktop instead.
とありました
Docker Machineを使うとAWSにDockerホストを展開するようなこともできたようですが
そういうこともDocker Desktopでできるんですか?
何か機能的に重ならない気がするのですが、どうなのでしょうか
2021/10/04(月) 19:51:34.53ID:9KsdlQMe
Dockerは仮想マシンじゃない

アプリを配布するためのコンテナで
一般的には仮想マシンと一緒に使うもの
2021/10/04(月) 20:48:52.32ID:FawikzNq
WindowsやMacの人はdockerデスクトップより
AWSのlightsailとか安いサーバでdocker-ce入れた方が
色々捗るんじゃ無いかと思う
2021/10/04(月) 20:51:07.98ID:9KsdlQMe
何も使い勝っては変わらんのだが?
2021/10/04(月) 22:16:12.92ID:/K4IieFe
>>350
AWSに展開するならECSかEKSを使用するので、実行環境でDockerコマンドを直接使用することはない
というかDockerエンジン自体もほとんど使用されなくなっている
355316
垢版 |
2021/10/05(火) 13:26:55.42ID:FDYVD/g/
Dockerはプレハブハウス
VMwareはモデルハウス
2021/10/05(火) 13:55:59.96ID:yIaQ6dVd
モデルハウスの中にプレハブハウス入れるのか?
入れないだろ
2021/10/05(火) 14:13:04.17ID:Q63nk656
例えはやめとけ

分かってないのバレるぞww
2021/10/05(火) 18:29:16.68ID:0PPfgqZB
空き地(物理マシン)を借り切って、そこを小さな区画(仮想マシン)切り分けて

そのスペースに在来工法(環境設定)で家を建てるよりも
システム建築(コンテナ)で家を建てた方が早いって感じかな

システム建築と在来工法の違いはこちらw
https://www.systematization-building.com/comparison/
2021/10/05(火) 21:44:16.57ID:kLI/hT2L
>>356
なんで混ぜるんだよw
Dockerってプレハブっていうか、工事現場にあるコンテナハウス?みたいなイメージあるんだよな
どこの現場でも速攻で事務所や休憩室になったりとかさ

対してVMは建売みたいに建てては売って(処分して)の繰り返しみたいな感じ
2021/10/05(火) 23:03:40.01ID:Q63nk656
家の中に家を立てるのがVM
家の中にプレハブ置くのがDocker
2021/10/06(水) 01:50:15.21ID:20dEfbhH
>>359
> 対してVMは建売みたいに建てては売って(処分して)の繰り返しみたいな感じ

だからVMの中にプレハブを建てては売って(処分して)の繰り返えすんだろ?
2021/10/06(水) 01:51:43.60ID:20dEfbhH
ん?まさかVMって設定済みVMイメージの話をしてるのか?

設定済みVMイメージをどうやって作る?
それが大変だからDockerを使うってわかってる?
363login:Penguin
垢版 |
2021/10/06(水) 08:08:33.20ID:3zPqHmnl
アホしかいねえ
2021/10/06(水) 21:37:20.18ID:snNFW4Me
例え話ってのは有用な時もあるんだけど
「自分が対象を明確に理解している時」に限定しないと
知ったか同士が例え話に例え話返し始めると
収拾つかなくなるよ
2021/10/06(水) 22:10:41.57ID:Iox74qkf
桃太郎というのは、例えば鬼のようなものである

鬼というのは、牙が生えていて、上半身裸
しましまのパンツを履いていて、金棒を持っている
悪いやつのことである
2021/10/07(木) 01:34:51.33ID:tXkJUNNf
なぁ・・・もう疲れた・・・
何をどうやってもoverlay2の配下にデータが保存されるんだが・・・俺は何のために16TBのHDDを買ったんだ・・・もぅ疲れた寝る...zzzZZZ
2021/10/07(木) 01:35:20.03ID:tXkJUNNf
あっ、言い忘れてたよ・・・誰かタスケテ!!
2021/10/07(木) 02:07:47.85ID:0x1c9XEu
何をどうやったかを言わなきゃ誰もなんもできねーよ
そうゆうとこだろお前が失敗してんのは
2021/10/07(木) 12:18:12.93ID:dNSBzTy5
>>368
説明できん・・・のだ
2021/10/07(木) 12:52:43.58ID:7C/N0L6y
イメージなりボリュームなりをリムーバブルメディアに置きたいんじゃないの
2021/10/07(木) 14:55:28.97ID:Hxaso2i3
Macだと悩まないのでWindowsなら
ジャンクションつかえばかいけつする
2021/10/07(木) 19:11:23.34ID:tXkJUNNf
いやさ全録サーバー構築してんだが・・・
SSDの方にLinuxとDockerとコンテナ入れてさ、録画したファイルをHDDの方に保存したかったんだけど・・・どこをどうしてもoverlay2の配下に保存されるんよ・・・

これが昨夜までの状態・・・

で、今帰ってきてLinuxから入れ直したらできたわ!どこが悪かったのか謎のままだが動けばオッケー
まずは地上波全録して何日分録り溜めできるか試さなきゃ

ノシ
2021/10/07(木) 19:17:03.89ID:luv6DYdj
きっとお化・・・霊の仕業だと思う
2021/10/07(木) 19:17:40.24ID:L40QlT/R
先にコンテナがマウントしたディレクトリかその上位に後からHDDマウントしようとしてnot emptyになってたんじゃないの
375login:Penguin
垢版 |
2021/10/16(土) 00:06:50.67ID:G0XnGfO2
ローカル上で動かすとバリ速い処理があるんだけども、EKSで動かすもCPU(limitつけてないのに)使い切ってくれない

何の設定が悪いんだか教えてくれだれか
たすけて
2021/10/16(土) 01:30:54.20ID:igUu5ecU
ストレージとかが遅いんやろ?
377login:Penguin
垢版 |
2021/11/05(金) 06:05:22.61ID:mEJJfXtx
wordpressをpullして起動するだけでとりあえず使える状態になるのはしびれたけどそれ以上のメリットあんのかって気はするよな
Tensorflowでgpu使うのに便利だって書籍に書いてたからやってみたら必要なものを入れる度にリビルドしろってアホかと
ローカルに入れた方が100倍楽だ
378login:Penguin
垢版 |
2021/11/05(金) 07:01:11.96ID:hrg4b2um
じゃけんローカルに入れたやつを他のサーバーに移動させようや
2021/11/05(金) 11:18:40.29ID:OrgeXxQI
アホやな
一生レンタルサーバー契約してろ
2021/11/05(金) 11:25:15.33ID:NannT1LF
最初から全部入れとけっていう
381login:Penguin
垢版 |
2021/11/05(金) 16:22:13.70ID:hrg4b2um
でも実際こういうやついるからな 一緒に仕事したくないわ
■ このスレッドは過去ログ倉庫に格納されています

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