探検


Docker Part5

■ このスレッドは過去ログ倉庫に格納されています
2020/12/02(水) 19:13:07.36ID:y3Zdr8oB
DockerはLinuxが持つコンテナ技術を使ったアプリケーション仮想化技術です。
アプリケーションを動かすために必要な各種ライブラリ等を一つのDockerイメージに
まとめることで、さまざまな環境へのデプロイが容易になります。
例えばWindowsやmacOSを使って開発・テストしたDockerイメージを
そのままクラウド上のLinuxの本番環境で使うことができます。

クラウド上の環境が仮想マシンであるため、Dockerは仮想マシンと併用して使うことが多いですが
仮想マシン技術とは無関係の技術です。実際Linux環境において仮想マシンは必須ではありません。
WindowsとmacOSでは仮想マシンを使いますが、これはOSがLinuxではないからです。

Dockerは主にアプリケーションを動かすために設計されているのでデータを保存するのには適していません。
データはDockerイメージの外部、ボリュームを使ってホスト環境に保存するかネットワーク通信で外部サーバーに保存します。
またDockerコンテナは一つのサービスを実行し、複数のサービスが必要な場合はdocker-composeやk8sなどを使って連携させます。
Dockerを仮想マシンの代替として、コンテナ内で複数のサービスを起動しようとすると困難が待ち受けています。
それはDockerの設計方針とあっていないからです。

Dockerイメージ(Dockerfile)はアプリケーション開発者が作成します
動かすのに必要なもの全てがDockerイメージに含まれるので
インフラ担当者はそれを動かすだけ、本来のインフラの作業に集中できるようになります

Dockerは主にウェブ業界でサービスのデプロイの必須技術になりました
情報共有しましょう

http://www.docker.io/

前スレ Docker Part4
https://mao.5ch.net/test/read.cgi/linux/1597591176/

注意 Dockerを仮想マシンの代替として使いたいと考えてる人は、DockerではなくLXCを使いましょう
LXC(Linux Containers)
https://mao.5ch.net/test/read.cgi/linux/1330826939/
220login:Penguin
垢版 |
2021/01/15(金) 08:30:31.77ID:KcZzwMNW
具体性0
2021/01/15(金) 08:32:09.93ID:42ZtZd/z
面倒なだけで問題はないよね。
面倒という指標だとk8sは更に最初が面倒なわけで
2021/01/15(金) 08:37:37.33ID:TKANrLkr
dockerわかってないのにわかった風のおじさんが、僕には困難です、と書いただけだから気にせんでええ
次スレまでいったら、テンプレから削除していいよ
223login:Penguin
垢版 |
2021/01/15(金) 08:41:58.25ID:0MH2boun
説明になってない
2021/01/15(金) 08:55:51.38ID:ouI6ZQHD
>>216
複数のサービスを起動する場合、systemdが一般に使われるが
systemdを使うのは大変

https://stackoverflow.com/questions/51979553/is-it-recommended-to-run-systemd-inside-docker-container

可能な限り、コンテナ内のsystemdは避けることをお勧めします。

Systemdは、ファイルシステムをマウントし、いくつかのカーネルパラメータを制御し、
プロセス出力をキャプチャするための独自の内部システムを持ち、システムスワップスペースを構成し、
巨大なページとPOSIXメッセージキューを構成し、プロセス間メッセージバスを開始し、
端末ごとのログインプロンプトを開始し、システムサービスのスワス。
これらの多くは、Dockerがあなたのために行うことです。
その他は、Dockerがデフォルトで防止するシステムレベルのコントロールです(正当な理由があります)。

通常、コンテナに1つのことを実行させたい場合があります。これには、複数の調整プロセスが必要になる場合がありますが、
通常、systemdがプロセスマネージャーを提供する以外のことを実行したくない場合があります。
systemdは非常に多くのホストレベルのパラメーターを変更するため--privileged、
Dockerの分離を破るような実行が必要になることがよくありますが、これは通常は悪い考えです。

質問で言うように、通常、コンテナーごとに1つの「ピース」を実行するのが最適と見なされます。
これができない場合は、DockerとUnixの両方の哲学において、
initプロセスに必要な最小限の処理を実行するsupervisordのような軽量プロセスマネージャーの方が適しています。
2021/01/15(金) 09:02:40.75ID:ouI6ZQHD
>>216
これとか読むといいかも。公式がVMじゃないと言ってる。

Containers are not VMs
https://www.docker.com/blog/containers-are-not-vms/

> しかし、これを言っても、VMに関する現在の考えやプロセスを適応させ、
> コンテナーに適用しようとしています。
>
> 「コンテナをバックアップするにはどうすればよいですか?」
> 「実行中のコンテナのパッチ管理戦略は何ですか?」
> 「アプリケーションサーバーはどこで実行されますか?」
>
> 私にとって、Dockerは仮想化テクノロジーではなく、アプリケーション配信テクノロジーで
> あることに気付いたとき、電球の瞬間が訪れました。


これとかも

So, You’re Saying Docker Isn’t A Virtual Machine???
https://derickbailey.com/2016/08/29/so-youre-saying-docker-isnt-a-virtual-machine/

A Docker container is not a virtual machine.
A Docker container is application virtualization.
2021/01/15(金) 09:06:01.49ID:ouI6ZQHD
複数のサービスを実行することは可能だが、推奨しないと書いてある。
そしてこの記事に書いてある複数のサービスを実行する方法を見ればわかるように
仮想マシンのように気軽にはできずコードを書く必要がある

Run multiple services in a container
https://docs.docker.com/config/containers/multi-service_container/

コンテナの主な実行プロセスは、ENTRYPOINTおよび/またはCMDの最後ですDockerfile。
一般に、コンテナごとに1つのサービスを使用して、関心のある領域を分離することをお勧めします。
そのサービスは複数のプロセスに分岐する可能性があります(たとえば、Apache Webサーバーが
複数のワーカープロセスを開始します)。複数のプロセスがあっても問題ありませんが、
Dockerを最大限に活用するには、1つのコンテナーがアプリケーション全体の複数の
側面を担当することを避けてください。ユーザー定義のネットワークと共有ボリュームを使用して、
複数のコンテナーを接続できます。
2021/01/15(金) 09:06:22.47ID:42ZtZd/z
そもそもコンテナを仮想マシンの代替として使うケースはほぼないだろ。

1に書くような話ではないな
2021/01/15(金) 09:09:09.98ID:ouI6ZQHD
> Handling such processes this way is superior to using a full-fledged
> init process such as sysvinit, upstart, or systemd to handle process lifecycle within your container.

sysvinit, upstart, or systemd を使うよりも
自分でコンテナのメインプロセスを作ったほうがいい
2021/01/15(金) 09:27:49.50ID:IT9cRebK
たとえばnginxとphp-fpmを別コンテナにする気もないから自作シェルエントリポイントにしてる
俺はやらないがsupervisordで制御してもいいだろう

systemdまで入れるならlxcかkvmにするけど
2021/01/15(金) 09:41:57.89ID:ouI6ZQHD
つまりは仮想マシンであれば標準でsystemdなどが起動してるから
サービスを起動させるにはパッケージインストールして
ちょっと設定ファイルを書き換える程度の簡単な作業だが

Dockerでやる場合、systemdなどを使わずに
自分でスクリプト書いて起動と停止を制御しなきゃいかんのよ(Docker推奨の方法)

頑張ればsystemdを動かすことも出来るが、そのために --privileged オプションが
必要になるかもしれないし、その他の調整が必要になるかもしれない
何が必要かは起動するサービスによって違うので試行錯誤が必要になる
だからDockerはsystemdを使わずに自作スクリプトで制御することを推奨してる

systemdを使うぐらいならより軽量のsupervisordを使うほうがいい
もちろんパッケージインストールして終わりではなく
自分で設定ファイルを書く必要がある
2021/01/15(金) 11:19:21.19ID:TKANrLkr
😫マルチプロセスコンテナ否定派
・1つのサービスのために多数のコンテナイメージをリリース
・イメージ使用者に面倒くさいymlを書かせる

🤗マルチプロセスコンテナ肯定派
・1つのサービスのために1つのコンテナイメージをリリース
・Supervisor等の設定を開発側が書いて出荷するのでイメージ使用者はdocker runするだけ
2021/01/15(金) 11:30:48.83ID:S7oMpLHl
じゃあちゃんと責任持って管理してね🤗
233login:Penguin
垢版 |
2021/01/15(金) 11:40:55.50ID:u8cDb4A3
仮想マシンみたいなことしたかったらLXCでよくね?
しらんけど
234login:Penguin
垢版 |
2021/01/15(金) 11:42:10.14ID:dw4hxnTe
・イメージ使用者に面倒くさいymlを書かせる
別に良くね?
2021/01/15(金) 11:43:48.41ID:TKANrLkr
>>233
仮想マシンみたいなことがしたいならシステムコンテナでいいと思うよ
単にマルチプロセスってだけならアプリケーションコンテナのほうがいい
2021/01/15(金) 11:46:03.25ID:IT9cRebK
「プロセス」「サービス」を意図的に混同して相手を貶める
2021/01/15(金) 11:47:25.35ID:TKANrLkr
>>234
良くない
負担を減らせるなら減らしたほうがいい
ホスピタリティの精神だよ
セルフサービスで全部やってねなんてのは二流だ

もちろん分散型のイメージを提供するなと言ってるわけじゃない
分散型をオプションとしてサポートするのも良い事だ
238login:Penguin
垢版 |
2021/01/15(金) 11:50:16.05ID:dw4hxnTe
マルチプロセス派は配布して終わり!じゃなくてその後の運用まで考えてるのか?
2021/01/15(金) 11:52:42.16ID:TKANrLkr
>>238
運用もシングルコンテナのほうが簡単でしょ
240login:Penguin
垢版 |
2021/01/15(金) 12:03:39.22ID:dw4hxnTe
>>239
なんで?
2021/01/15(金) 12:06:00.89ID:TKANrLkr
>>240
1つの物管理するのと多数の物を管理するのじゃ前者のほうがかんたんだ
常識的に考えればいい
242login:Penguin
垢版 |
2021/01/15(金) 12:23:08.21ID:dw4hxnTe
複数サービスのログ管理はどうする?
まさかファイル出力にしてlogrotatedとかも突っ込むの?
それかコンテナ自体のログを複数のサービスからのログが流れてる状態にするの?

ログ管理のSaaSへログの集約がしたくなったらどうする?
エージェントもコンテナに突っ込むのか?

複数コンテナで
ログは全部コンテナのログにしておけば
dockerのログだけローテーションすれば済むじゃん
ロギングドライバ変えたり
ログ転送のエージェントは別コンテナにしたりできる
2021/01/15(金) 12:38:44.17ID:uuEHso6B
個別に更新するのだから、バラバラの方が管理しやすい。負荷分散も容易。

一箇所にまとめるのは滅多に変えない時だけね。
2021/01/15(金) 12:39:04.30ID:IT9cRebK
そんなもんそれぞれのプロセスがstderrに流すだけ
あとはホスト側でどうにでも
2021/01/15(金) 12:41:17.01ID:uuEHso6B
纏めた方が楽という人は、k8sのメリット関連の文献を読んだほうが良い。基本的に個人でも同じ。
依存関係が原因のレガシー化を防ぐには、細かく分けて疎結合というのがマイクロサービスの基本。
246login:Penguin
垢版 |
2021/01/15(金) 12:45:13.28ID:dw4hxnTe
supervisord管理下のプロセスの死活監視やリソース使用の監視はどうするんだ?
同じイメージに監視ツールのエージェント突っ込むのか?
もうめちゃめちゃ複雑だし、イメージに汎用性がない
複数アプリがあったら全部これやれってアプデも対応しろって言うの?面倒過ぎ

普通にマルチコンテナで動いてたら
Dockerコンテナが動いてるかどうかや、コンテナのCPU、メモリ使用量などの監視で済む
監視ツール変えたくなってもアプリのイメージをいじる必要がない

アプリ固有のメトリクスを記録監視するならアプリイメージに対応必要だが、
これらの基本的なメトリクスを取りたいだけなら対応不要
247login:Penguin
垢版 |
2021/01/15(金) 12:53:47.70ID:dw4hxnTe
>>244
ホスト側!?
結局分けるんじゃん

じゃあsupervisordもやめたら良くね?
2021/01/15(金) 12:57:26.12ID:TKANrLkr
>>242
コンテナのログとして出せばいいだけ
2021/01/15(金) 12:57:59.15ID:TKANrLkr
>>243
実は他者製のクラスタを個別に更新することは少ない
2021/01/15(金) 13:00:28.33ID:TKANrLkr
>>245
k8sは大規模すぎるので導入障壁が大きい
1コンテナシステムは小規模から手軽に開始できる
2021/01/15(金) 13:01:39.19ID:TKANrLkr
>>245
なんでもかんでもバラす必要性はない
Spotifyの事例にもあるようにミクロサービスからモジュラーモノリスに回帰した大規模サービスもある
2021/01/15(金) 13:03:22.31ID:TKANrLkr
>>246
昔からやってる事をやるだけ
開発側にばノウハウが大量にあるのでなにも苦にならない
重要なことは利用者側が楽になること
2021/01/15(金) 13:05:01.57ID:uuEHso6B
弊社の勤怠管理システムはIE限定です!

一箇所にまとめるとこうになる。

まあ、慣れてるからそれが良いという人はご自由にどうぞかな
254login:Penguin
垢版 |
2021/01/15(金) 13:05:35.87ID:dw4hxnTe
>>252
>開発側にばノウハウが大量にあるのでなにも苦にならない
よくわかんない
2021/01/15(金) 13:05:44.73ID:TKANrLkr
>>253
意味不明な論点ずらし乙
2021/01/15(金) 13:06:09.65ID:TKANrLkr
>>254
わかる
2021/01/15(金) 13:06:47.32ID:TKANrLkr
仕事に戻るからまた後でな
258login:Penguin
垢版 |
2021/01/15(金) 13:16:57.33ID:dw4hxnTe
>>251
Spotifyにsupervisord最強おじさんはいない
2021/01/15(金) 13:19:56.79ID:IT9cRebK
>>247
supervisord使うなんて一言も言ってないけど
コンテナ別にログ分けるのはホスト側のrsyslogdで十分
2021/01/15(金) 13:27:24.22ID:uuEHso6B
>>255
まとめるとレガシー化しやすいってこと。
261login:Penguin
垢版 |
2021/01/15(金) 13:38:59.66ID:dw4hxnTe
1コンテナマルチプロセスにしろってsupervisordにしろってことだろ
そんな事やったらサービス単位で更新できないし、
supervisordの面倒見るのもいやだな

Docker自体がある意味supervisordみたいな物だから
supervisord in supervisordするって事じゃん?
2021/01/15(金) 14:24:59.58ID:IT9cRebK
「プロセス」「サービス」を意図的に混同して話をややこしくする

nginxとphp-fpmを別コンテナにするメリットがあるのかね
2021/01/15(金) 16:05:59.73ID:cz1NjHRF
>>251
Shopifyじゃなくて?
2021/01/15(金) 16:09:00.97ID:6mixkv7d
>>262
まあマルチプロセスなベースイメージをそうと知らないまま使っている阿呆も中にはいるだろうね
2021/01/15(金) 16:11:53.56ID:NRANT14o
バカには疎結合なんか、分からんから、ほっとけほっとけって
2021/01/15(金) 16:25:32.08ID:TKANrLkr
>>261
オーケストレーションの手間暇を利用者側に押し付けるか、開発側でやってあげるかの違い
小規模のスタートアップなら全部開発側に丸投げしてdocker runするだけのほうがかんたんだ
2021/01/15(金) 16:28:50.03ID:TKANrLkr
>>265
疎結合と一言で言っても色々ある

ミクロサービスは疎結合の代表だが
別にミクロサービスじゃなきゃ疎結合できないわけじゃない

さっきも言ったように
サービスとしてはモノリスでもコードレベルで高度にモジュール化することで疎結合を達成するモジュラーモノリスのような考え方もある

コンテナは1つでも内部のサービスが疎結合ならなんの問題もないのだ
2021/01/15(金) 16:29:53.28ID:TKANrLkr
>>263
そうだっけ?正確にはググって
2021/01/15(金) 16:35:15.87ID:TKANrLkr
で、この1コンテナ、マルチプロセス(サービス)で成功してる代表的なコンテナがGitLabね
薄っぺらい表面的な知識しかない連中と違って、流石にGitLabのエンジニア達は深く理解してる
杓子定規にコンテナを分ける必要はない、背景が不明な不特定多数に配布するなら、むしろバンドルしたほうがいい、と理解してる
2021/01/15(金) 16:40:51.49ID:6mixkv7d
GitLabはセルフホスティング対応が大前提だからそうなってるんだよ
シングルインスタンスなSaaSとは別次元の話
2021/01/15(金) 16:59:15.47ID:TKANrLkr
つまり利用者側からは1コンテナのほうがいいってことだ
2021/01/15(金) 17:41:15.88ID:TKANrLkr
基本は1コンテナなんだよ
ちゃんと利用者のことを考えてるならな
で厳しい要件満たすために、分散管理したい連中のために、いちおうバラ売りコンテナも用意しとく
それがベストプラクティス
さいしょっから分散管理のみサポートします、なあんて、怠惰もいいとこだ
273login:Penguin
垢版 |
2021/01/15(金) 18:55:24.75ID:dw4hxnTe
それはご苦労なこった
俺は怠惰だからメインのコンテナ以外はありあわせのイメージ使うぜ
2021/01/15(金) 19:21:01.23ID:F2PkWUyM
自社以外に誰も求めてないマイナーサービスは最初からバラ売りでもいい
2021/01/16(土) 12:37:44.49ID:iVfNA5oL
複数のサービスを一つのコンテナにまとめたほうがいいって言ってるやつは

複数のサービスが一つのコンテナになってるから
"使うのが楽"って言ってるんだよ。
作るのが大変の否定になってない

>>1は作るのが大変と言っている

> Dockerを仮想マシンの代替として、コンテナ内で複数のサービスを起動しようとすると困難が待ち受けています。


Dockerを使ってると言いつつ、自分でDockerfileもyamlも書かずに
ただ誰かが作ったものを使うだけのやつは、Dockerを使ってるとは言えない
んで、使ってるだけのやつが、使うのが楽と言ってる

複数のサービスを一つのコンテナに入れるのがどれだけ大変かわかってない
だって自分で作ってないんだもの
2021/01/16(土) 12:50:03.28ID:TRxochm9
いやいや、作るのもめちゃくちゃ簡単だぞ?
Supervisorとか使うだけ
Dockerfileも既存のchefなんかが、殆どそのまま使える
2021/01/16(土) 13:00:59.25ID:TRxochm9
コンテナを分けないことで、お互いのサービスの提供するコマンドラインツールを使いやすくなるのも、便利だな

ある古いサービスAの、管理者用のコマンドラインがあるんだが、、、
これはサービスAをインストールしたマシンで、ローカル実行する必要があった
もちろん、RPCなどという気の利いたものは、ない
開発者からすると、SSHがあればいいでしょ?みたいな気持ちだったんだろうな

そして、サービスBからこのコマンドラインを実行したい、と、なったわけだ

もし、サービスAとサービスBのコンテナを、分けてしまったら
サービスBから、このコマンドラインを実行するのは、普通の方法では、不可能だ
docker.sockをマウントして、サービスBコンテナからdocker execするか、、、
サービスAを拡張してRPAを追加しなきゃならない
あるいは、サービスAを、マルチサービス、にして、SSHを追加するか、、、

1コンテナだったら簡単なのに!
2021/01/16(土) 13:05:52.72ID:d+XwEvch
オンプレの延長だな
279login:Penguin
垢版 |
2021/01/16(土) 13:07:11.86ID:5ICFXjQI
データベースは既存のサーバーが使えたほうが便利と思うけど
AWSのRDSとか使わせろ
2021/01/16(土) 13:09:50.55ID:iVfNA5oL
>>276
> いやいや、作るのもめちゃくちゃ簡単だぞ?
> Supervisorとか使うだけ

使うだけじゃなくて設定ファイルとか書かないと駄目だろ
ログをどうするかとかさ、永続的なファイルをどうするかとかさ
2021/01/16(土) 13:10:27.15ID:iVfNA5oL
> Dockerfileも既存のchefなんかが、殆どそのまま使える

chefを使うってアホじゃないか
Docker使う意味がなくなってる
2021/01/16(土) 13:10:30.88ID:TRxochm9
このように、1サービス1コンテナの精神で細かく分離すると
サービス同士が疎結合になり、一見すると良いように思える
しかし、疎結合である、ということは、サービス間の連携のオーバーヘッドが増える、ということだ
サービスはRPCを実装しなければならず、開発者は疲弊する
サービスメッシュの管理コストは増大し、運用者は疲弊する

これはミクロサービスの功罪と同じことだが、なんでもかんでも、小さく分けて、疎にするのが、常に正解なわけじゃない
全てはトレードオフなのだ!

たしか、マーティンファウラーだったと思うが
彼曰く、最初からミクロサービス的な思想に傾倒した案件は、失敗することが多い、らしい

最初はモノリスのほうが、うまく行くのだ
システムが、モノリスでは到底手に負えないほど、巨大化してから初めて、分割することを考えれば、よろしい
2021/01/16(土) 13:11:04.23ID:TRxochm9
>>280
そんなことも出来ないの?
2021/01/16(土) 13:12:08.94ID:iVfNA5oL
>>277
それ、仮想マシン使えって話なんだ
2021/01/16(土) 13:12:36.46ID:iVfNA5oL
>>283
作るのが大変だって話をしてる
出来るできないの話ではない
2021/01/16(土) 13:12:54.17ID:TRxochm9
>>281
あるぞ
GitLab公式コンテナはChefで動いてる
2021/01/16(土) 13:13:24.74ID:TRxochm9
>>285
大変じゃないけど?
2021/01/16(土) 13:15:45.87ID:iVfNA5oL
まあここを読めって話だな

Supervisor と Docker を使う
https://docs.docker.jp/engine/articles/using_supervisord.html
2021/01/16(土) 13:16:07.78ID:iVfNA5oL
>>287
apt-getでインストールするだけ vs 設定ファイルを自分で書く
2021/01/16(土) 13:16:30.37ID:iVfNA5oL
>>286
> GitLab公式コンテナはChefで動いてる

それを同じことをお前が作るのは大変だって話をしてる
2021/01/16(土) 13:18:13.82ID:7o928iA8
>>284
仮想マシンは重いからやだ
2021/01/16(土) 13:18:42.21ID:7o928iA8
>>289
どっちも大変じゃないけど?
293login:Penguin
垢版 |
2021/01/16(土) 13:19:01.25ID:5ICFXjQI
supervisordの方が面倒くさい
docker-composeの方が楽
2021/01/16(土) 13:19:35.25ID:7o928iA8
>>290
大変じゃないけど?
もちろんGitLabほどの製品を作るのは無理だろうけどChefでコンテナを作るのは誰だってできる
2021/01/16(土) 13:20:33.01ID:7o928iA8
>>293
そりゃ、手間を利用者側に、オシツケテル、からでしょ
296login:Penguin
垢版 |
2021/01/16(土) 13:25:53.65ID:5ICFXjQI
docker-compose psしたらsupervisordが生きてたらupと表示されるが
設定にミスがあった場合や問題が起きた場合もsupervisordさえ生きてたらupと出る
判定するにはログやsupervisordのあるコンテナ内でコマンド実行が必要
どこが優しいねん
297login:Penguin
垢版 |
2021/01/16(土) 13:32:34.07ID:5ICFXjQI
>>288
A container’s main running process is the ENTRYPOINT and/or CMD at the end of the Dockerfile.
It is generally recommended that you separate areas of concern by using one service per container.
That service may fork into multiple processes (for example, Apache web server starts multiple worker processes). It’s ok to have multiple processes, but to get the most benefit out of Docker, avoid one container being responsible for multiple aspects of your overall application.
You can connect multiple containers using user-defined networks and shared volumes.

https://docs.docker.com/config/containers/multi-service_container/
2021/01/16(土) 13:33:38.70ID:7o928iA8
>>296
ミスがある前提なら何やっても駄目だろ
ひでー詭弁だな
299login:Penguin
垢版 |
2021/01/16(土) 13:33:54.29ID:5ICFXjQI
avoid one container being responsible for multiple aspects of your overall application.
avoid one container being responsible for multiple aspects of your overall application.
300login:Penguin
垢版 |
2021/01/16(土) 13:34:41.89ID:5ICFXjQI
>>298
開発や運用でトラブルが一切無いと考える方が頭おかしい
301login:Penguin
垢版 |
2021/01/16(土) 13:36:10.72ID:5ICFXjQI
dockerやdocker-composeだけでsupervisordのやってる事と同じ事が出来る
余計なコンポーネントを増やすな
2021/01/16(土) 13:39:18.26ID:7o928iA8
>>300
なら1コンテナ1プロセスでも間違いは起こるなー
2021/01/16(土) 13:39:56.86ID:7o928iA8
>>301
aupervisorだけでdockercomposeがやるようなことはできる
余計なコンポーネントを増やすな
304login:Penguin
垢版 |
2021/01/16(土) 13:42:03.31ID:5ICFXjQI
>>303
supervisordあったらdocker要らなくね?
305login:Penguin
垢版 |
2021/01/16(土) 13:47:58.61ID:5ICFXjQI
既存のデータベース使うとかは考えないの?
データベースの入ってないDockerイメージと
入ってるイメージ2種類作るのか?
それか起動時のスクリプトにフラグ追加?

だったら最初から分けとけよ
めんどくさい
2021/01/16(土) 14:03:15.18ID:Q9Gxtc5G
>>304
要る
svに限らず、全ての依存関係を、imageにパッケージングする機能
インスコした物を、キレイサッパリ、廃棄する機能
お手軽サンドボックス
ありがとう、docker!
2021/01/16(土) 14:05:12.85ID:Q9Gxtc5G
>>305
お前さー、少しはレス読みなよ
分散用に、分けたコンテナをオプションで配布する、ことまではヒテイしとらんだろ
言うなれば、マルチサービスコンテナファーストだよ
シングルサービスコンテナはオプションだ
308login:Penguin
垢版 |
2021/01/16(土) 14:05:40.84ID:kbdLhinp
>>306
LXCか仮想マシンに直接インスコでよくね?

docker使うならsupervisord使わなくても
docker-composeのyml配れば良いじゃん
何も問題ない
309login:Penguin
垢版 |
2021/01/16(土) 14:07:23.52ID:kbdLhinp
>>307
くそデカイメージと小さいイメージ2種類用意するのが面倒

docker-composeなら簡単にかけて
小さいイメージ1種類で済む
2021/01/16(土) 14:08:38.07ID:Q9Gxtc5G
>>305
それとな、内部DBと外部DBを選択できるコンテナは、わりとよくある
スタンドアロンだとsqlite、そうじゃないとpostgres、mysqlのどっちか
てなわけよ
スタンドアロンファースト
(・∀・)イイネ!!
2021/01/16(土) 14:12:15.37ID:Q9Gxtc5G
>>309
小ささにこだわって、オーケストレーションマニフェスト書かせたり、運用の手間を増やすな
カリッカリにチューニングしたい、オタク共に合わせるのは、大半のユーザーにとっては面倒でしかないんだよ
多少、重くていいから、お手軽に使わせろ、ってーの
312login:Penguin
垢版 |
2021/01/16(土) 14:24:51.12ID:kbdLhinp
>>310
sqliteはプロセス要らないからいいが
mysqlやpostgresqlを突っ込めというのはキ○ガイの所業
複数DB対応するには普通は対応コストがかかる
DBラッパー使っても特定DBにしか対応してない拡張は使えないし

docker-composeで書いても大した記述量でもあるまいに
意図的に無視してるな
313login:Penguin
垢版 |
2021/01/16(土) 14:28:59.91ID:kbdLhinp
>>311
docker-compose配ればいいだけだろ
基地外
2021/01/16(土) 14:32:15.75ID:Q9Gxtc5G
>>313
podmanで動くようにしろ
K8Sで動くようにしろ
Nomadで動くようにしろ
うちの環境はだと動かないんだが?
、、、

お前これ全部対応できんの?
315login:Penguin
垢版 |
2021/01/16(土) 14:34:53.03ID:kbdLhinp
手軽に試すなら普通はdocker-compose使うから
そんな特殊なやり方で対応する必要がない。
k8sやらnomadに手軽さは求めてないし。

k8sでやるんだったらhelmチャートあると便利。
2021/01/16(土) 14:37:33.02ID:Q9Gxtc5G
マルチコンテナだとこうやって、実行環境に会わせて、オーケストレーションマニフェストをたくさん書かなきゃならん
一方でシングルコンテナなら、docker runするだけ
超簡単で、みんなハッピー
しかも、podmanでも、同じように動く
317login:Penguin
垢版 |
2021/01/16(土) 14:39:41.23ID:kbdLhinp
そんな手軽さ別に求めてないし。馬鹿なの?
docker-compose用意してたら大体想定されている使い方分かるから、
自分でYAMLなり何なり書けば良いだけ
2021/01/16(土) 14:50:08.02ID:Q9Gxtc5G
>>317
ユーザーに、手間をかけさせちゃ、だめだ
GitLabはこれをよくわかってる、から、1コンテナに詰め込んだ
ユーザーはdocker runするだけで、GitLabを使えるようになった
これが、マルチコンテナだったら、まあ、大変だよ
2021/01/16(土) 15:03:01.91ID:Q9Gxtc5G
自作PCとスマホ、みたいなもんかなー

マルチコンテナ≒自作PC
このパーツ、あのパーツ、色々集めて、ミスしないようにくみたてて、ドライバとかも探して、入れて下さい
ツールは別売りなんで、それも自分で探して、入れてください
組み合せが悪いと、動かないかもしれません
でも、まあ、自己責任です

スマホ≒シングルコンテナ
スマホを購入して、箱から出して、電源を入れて下さい
WIFIとアカウントの入力だけ、お願いします
驚きましたか?そうです、もう使えます!
必要になりそうなアプリケーションも、予め揃えてあります
おめでとうございます!
320login:Penguin
垢版 |
2021/01/16(土) 15:03:11.70ID:kbdLhinp
>>318
作る側の手間がかかり過ぎるって言ってんだろ馬鹿なの?
だから誰も真似しない

本格運用しないならdocker-composeで動けば十分だろバーカ
■ このスレッドは過去ログ倉庫に格納されています