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/
Docker Part5
■ このスレッドは過去ログ倉庫に格納されています
2020/12/02(水) 19:13:07.36ID:y3Zdr8oB
2021/01/13(水) 16:17:00.23
>>208
ちょっとだけ構築速度おそくなったけどできた!�dクス!
ちょっとだけ構築速度おそくなったけどできた!�dクス!
2021/01/13(水) 17:51:21.77ID:rA2yTqxj
no cacheオプションだから遅くなるのは当然でしょ
2021/01/13(水) 19:38:49.48
メモ
docker image prune
で消えねえと思ったら-aオプションいるのね・・
docker image prune -a
消したくないやつは稼働させたままやったら
稼働してないやつだけ消えてめちゃくちゃ捗った
(稼働中のやつには無影響なのかはわからないけど)
docker image prune
で消えねえと思ったら-aオプションいるのね・・
docker image prune -a
消したくないやつは稼働させたままやったら
稼働してないやつだけ消えてめちゃくちゃ捗った
(稼働中のやつには無影響なのかはわからないけど)
2021/01/13(水) 19:46:33.52
できれば、pipでインストールする自作ライブラリの訂正部分だけ更新できるようにしたいけど
--no-cacheするかイメージもコンテナも全部消してから再ビルドしないと適用してくれない・・
非公開gitからクローン → python setup.py sdist → pip install ○○
みたいにDockerファイルのRUNでやってるのがだめなのかな
--no-cacheするかイメージもコンテナも全部消してから再ビルドしないと適用してくれない・・
非公開gitからクローン → python setup.py sdist → pip install ○○
みたいにDockerファイルのRUNでやってるのがだめなのかな
2021/01/13(水) 20:07:09.42ID:PWUDNnFH
>>212
自作ライブラリをインストールした以降のイメージだけを削除したら。
自作ライブラリをインストールした以降のイメージだけを削除したら。
2021/01/13(水) 20:07:20.37ID:bWUxShca
ARGでタグかブランチを指定するんですよ
2021/01/13(水) 20:18:05.93
2021/01/14(木) 23:12:11.80ID:Pm6qmODH
217login:Penguin
2021/01/15(金) 08:17:15.80ID:qYm5MEeF hypervisord最強おじさんktkr
2021/01/15(金) 08:27:02.67ID:IT9cRebK
super...
2021/01/15(金) 08:28:31.76ID:TKANrLkr
>>216
困難は特にないよ
困難は特にないよ
220login:Penguin
2021/01/15(金) 08:30:31.77ID:KcZzwMNW 具体性0
2021/01/15(金) 08:32:09.93ID:42ZtZd/z
面倒なだけで問題はないよね。
面倒という指標だとk8sは更に最初が面倒なわけで
面倒という指標だと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のような軽量プロセスマネージャーの方が適しています。
複数のサービスを起動する場合、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.
これとか読むといいかも。公式が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つのコンテナーがアプリケーション全体の複数の
側面を担当することを避けてください。ユーザー定義のネットワークと共有ボリュームを使用して、
複数のコンテナーを接続できます。
そしてこの記事に書いてある複数のサービスを実行する方法を見ればわかるように
仮想マシンのように気軽にはできずコードを書く必要がある
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に書くような話ではないな
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 を使うよりも
自分でコンテナのメインプロセスを作ったほうがいい
> 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にするけど
俺はやらないがsupervisordで制御してもいいだろう
systemdまで入れるならlxcかkvmにするけど
2021/01/15(金) 09:41:57.89ID:ouI6ZQHD
つまりは仮想マシンであれば標準でsystemdなどが起動してるから
サービスを起動させるにはパッケージインストールして
ちょっと設定ファイルを書き換える程度の簡単な作業だが
Dockerでやる場合、systemdなどを使わずに
自分でスクリプト書いて起動と停止を制御しなきゃいかんのよ(Docker推奨の方法)
頑張ればsystemdを動かすことも出来るが、そのために --privileged オプションが
必要になるかもしれないし、その他の調整が必要になるかもしれない
何が必要かは起動するサービスによって違うので試行錯誤が必要になる
だからDockerはsystemdを使わずに自作スクリプトで制御することを推奨してる
systemdを使うぐらいならより軽量のsupervisordを使うほうがいい
もちろんパッケージインストールして終わりではなく
自分で設定ファイルを書く必要がある
サービスを起動させるにはパッケージインストールして
ちょっと設定ファイルを書き換える程度の簡単な作業だが
Dockerでやる場合、systemdなどを使わずに
自分でスクリプト書いて起動と停止を制御しなきゃいかんのよ(Docker推奨の方法)
頑張ればsystemdを動かすことも出来るが、そのために --privileged オプションが
必要になるかもしれないし、その他の調整が必要になるかもしれない
何が必要かは起動するサービスによって違うので試行錯誤が必要になる
だからDockerはsystemdを使わずに自作スクリプトで制御することを推奨してる
systemdを使うぐらいならより軽量のsupervisordを使うほうがいい
もちろんパッケージインストールして終わりではなく
自分で設定ファイルを書く必要がある
2021/01/15(金) 11:19:21.19ID:TKANrLkr
😫マルチプロセスコンテナ否定派
・1つのサービスのために多数のコンテナイメージをリリース
・イメージ使用者に面倒くさいymlを書かせる
🤗マルチプロセスコンテナ肯定派
・1つのサービスのために1つのコンテナイメージをリリース
・Supervisor等の設定を開発側が書いて出荷するのでイメージ使用者はdocker runするだけ
・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
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
242login:Penguin
2021/01/15(金) 12:23:08.21ID:dw4hxnTe 複数サービスのログ管理はどうする?
まさかファイル出力にしてlogrotatedとかも突っ込むの?
それかコンテナ自体のログを複数のサービスからのログが流れてる状態にするの?
ログ管理のSaaSへログの集約がしたくなったらどうする?
エージェントもコンテナに突っ込むのか?
複数コンテナで
ログは全部コンテナのログにしておけば
dockerのログだけローテーションすれば済むじゃん
ロギングドライバ変えたり
ログ転送のエージェントは別コンテナにしたりできる
まさかファイル出力にして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、メモリ使用量などの監視で済む
監視ツール変えたくなってもアプリのイメージをいじる必要がない
アプリ固有のメトリクスを記録監視するならアプリイメージに対応必要だが、
これらの基本的なメトリクスを取りたいだけなら対応不要
同じイメージに監視ツールのエージェント突っ込むのか?
もうめちゃめちゃ複雑だし、イメージに汎用性がない
複数アプリがあったら全部これやれってアプデも対応しろって言うの?面倒過ぎ
普通にマルチコンテナで動いてたら
Dockerコンテナが動いてるかどうかや、コンテナのCPU、メモリ使用量などの監視で済む
監視ツール変えたくなってもアプリのイメージをいじる必要がない
アプリ固有のメトリクスを記録監視するならアプリイメージに対応必要だが、
これらの基本的なメトリクスを取りたいだけなら対応不要
247login:Penguin
2021/01/15(金) 12:53:47.70ID:dw4hxnTe2021/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
2021/01/15(金) 13:01:39.19ID:TKANrLkr
2021/01/15(金) 13:03:22.31ID:TKANrLkr
2021/01/15(金) 13:05:01.57ID:uuEHso6B
弊社の勤怠管理システムはIE限定です!
一箇所にまとめるとこうになる。
まあ、慣れてるからそれが良いという人はご自由にどうぞかな
一箇所にまとめるとこうになる。
まあ、慣れてるからそれが良いという人はご自由にどうぞかな
254login:Penguin
2021/01/15(金) 13:05:35.87ID:dw4hxnTe2021/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最強おじさんはいない
Spotifyにsupervisord最強おじさんはいない
2021/01/15(金) 13:19:56.79ID:IT9cRebK
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するって事じゃん?
そんな事やったらサービス単位で更新できないし、
supervisordの面倒見るのもいやだな
Docker自体がある意味supervisordみたいな物だから
supervisord in supervisordするって事じゃん?
2021/01/15(金) 14:24:59.58ID:IT9cRebK
「プロセス」「サービス」を意図的に混同して話をややこしくする
nginxとphp-fpmを別コンテナにするメリットがあるのかね
nginxとphp-fpmを別コンテナにするメリットがあるのかね
2021/01/15(金) 16:05:59.73ID:cz1NjHRF
>>251
Shopifyじゃなくて?
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
2021/01/15(金) 16:28:50.03ID:TKANrLkr
>>265
疎結合と一言で言っても色々ある
ミクロサービスは疎結合の代表だが
別にミクロサービスじゃなきゃ疎結合できないわけじゃない
さっきも言ったように
サービスとしてはモノリスでもコードレベルで高度にモジュール化することで疎結合を達成するモジュラーモノリスのような考え方もある
コンテナは1つでも内部のサービスが疎結合ならなんの問題もないのだ
疎結合と一言で言っても色々ある
ミクロサービスは疎結合の代表だが
別にミクロサービスじゃなきゃ疎結合できないわけじゃない
さっきも言ったように
サービスとしてはモノリスでもコードレベルで高度にモジュール化することで疎結合を達成するモジュラーモノリスのような考え方もある
コンテナは1つでも内部のサービスが疎結合ならなんの問題もないのだ
2021/01/15(金) 16:29:53.28ID:TKANrLkr
>>263
そうだっけ?正確にはググって
そうだっけ?正確にはググって
2021/01/15(金) 16:35:15.87ID:TKANrLkr
で、この1コンテナ、マルチプロセス(サービス)で成功してる代表的なコンテナがGitLabね
薄っぺらい表面的な知識しかない連中と違って、流石にGitLabのエンジニア達は深く理解してる
杓子定規にコンテナを分ける必要はない、背景が不明な不特定多数に配布するなら、むしろバンドルしたほうがいい、と理解してる
薄っぺらい表面的な知識しかない連中と違って、流石にGitLabのエンジニア達は深く理解してる
杓子定規にコンテナを分ける必要はない、背景が不明な不特定多数に配布するなら、むしろバンドルしたほうがいい、と理解してる
2021/01/15(金) 16:40:51.49ID:6mixkv7d
GitLabはセルフホスティング対応が大前提だからそうなってるんだよ
シングルインスタンスなSaaSとは別次元の話
シングルインスタンスな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を使ってるとは言えない
んで、使ってるだけのやつが、使うのが楽と言ってる
複数のサービスを一つのコンテナに入れるのがどれだけ大変かわかってない
だって自分で作ってないんだもの
複数のサービスが一つのコンテナになってるから
"使うのが楽"って言ってるんだよ。
作るのが大変の否定になってない
>>1は作るのが大変と言っている
> Dockerを仮想マシンの代替として、コンテナ内で複数のサービスを起動しようとすると困難が待ち受けています。
Dockerを使ってると言いつつ、自分でDockerfileもyamlも書かずに
ただ誰かが作ったものを使うだけのやつは、Dockerを使ってるとは言えない
んで、使ってるだけのやつが、使うのが楽と言ってる
複数のサービスを一つのコンテナに入れるのがどれだけ大変かわかってない
だって自分で作ってないんだもの
2021/01/16(土) 12:50:03.28ID:TRxochm9
いやいや、作るのもめちゃくちゃ簡単だぞ?
Supervisorとか使うだけ
Dockerfileも既存のchefなんかが、殆どそのまま使える
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コンテナだったら簡単なのに!
ある古いサービス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とか使わせろ
AWSのRDSとか使わせろ
2021/01/16(土) 13:09:50.55ID:iVfNA5oL
>>276
> いやいや、作るのもめちゃくちゃ簡単だぞ?
> Supervisorとか使うだけ
使うだけじゃなくて設定ファイルとか書かないと駄目だろ
ログをどうするかとかさ、永続的なファイルをどうするかとかさ
> いやいや、作るのもめちゃくちゃ簡単だぞ?
> Supervisorとか使うだけ
使うだけじゃなくて設定ファイルとか書かないと駄目だろ
ログをどうするかとかさ、永続的なファイルをどうするかとかさ
2021/01/16(土) 13:10:27.15ID:iVfNA5oL
> Dockerfileも既存のchefなんかが、殆どそのまま使える
chefを使うってアホじゃないか
Docker使う意味がなくなってる
chefを使うってアホじゃないか
Docker使う意味がなくなってる
2021/01/16(土) 13:10:30.88ID:TRxochm9
このように、1サービス1コンテナの精神で細かく分離すると
サービス同士が疎結合になり、一見すると良いように思える
しかし、疎結合である、ということは、サービス間の連携のオーバーヘッドが増える、ということだ
サービスはRPCを実装しなければならず、開発者は疲弊する
サービスメッシュの管理コストは増大し、運用者は疲弊する
これはミクロサービスの功罪と同じことだが、なんでもかんでも、小さく分けて、疎にするのが、常に正解なわけじゃない
全てはトレードオフなのだ!
たしか、マーティンファウラーだったと思うが
彼曰く、最初からミクロサービス的な思想に傾倒した案件は、失敗することが多い、らしい
最初はモノリスのほうが、うまく行くのだ
システムが、モノリスでは到底手に負えないほど、巨大化してから初めて、分割することを考えれば、よろしい
サービス同士が疎結合になり、一見すると良いように思える
しかし、疎結合である、ということは、サービス間の連携のオーバーヘッドが増える、ということだ
サービスは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
2021/01/16(土) 13:12:54.17ID:TRxochm9
2021/01/16(土) 13:13:24.74ID:TRxochm9
>>285
大変じゃないけど?
大変じゃないけど?
2021/01/16(土) 13:15:45.87ID:iVfNA5oL
2021/01/16(土) 13:16:07.78ID:iVfNA5oL
>>287
apt-getでインストールするだけ vs 設定ファイルを自分で書く
apt-getでインストールするだけ vs 設定ファイルを自分で書く
2021/01/16(土) 13:16:30.37ID:iVfNA5oL
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の方が楽
docker-composeの方が楽
2021/01/16(土) 13:19:35.25ID:7o928iA8
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のあるコンテナ内でコマンド実行が必要
どこが優しいねん
設定にミスがあった場合や問題が起きた場合も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/
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
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.
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プロセスでも間違いは起こるなー
なら1コンテナ1プロセスでも間違いは起こるなー
2021/01/16(土) 13:39:56.86ID:7o928iA8
304login:Penguin
2021/01/16(土) 13:42:03.31ID:5ICFXjQI >>303
supervisordあったらdocker要らなくね?
supervisordあったらdocker要らなくね?
305login:Penguin
2021/01/16(土) 13:47:58.61ID:5ICFXjQI 既存のデータベース使うとかは考えないの?
データベースの入ってないDockerイメージと
入ってるイメージ2種類作るのか?
それか起動時のスクリプトにフラグ追加?
だったら最初から分けとけよ
めんどくさい
データベースの入ってないDockerイメージと
入ってるイメージ2種類作るのか?
それか起動時のスクリプトにフラグ追加?
だったら最初から分けとけよ
めんどくさい
2021/01/16(土) 14:03:15.18ID:Q9Gxtc5G
2021/01/16(土) 14:05:12.85ID:Q9Gxtc5G
>>305
お前さー、少しはレス読みなよ
分散用に、分けたコンテナをオプションで配布する、ことまではヒテイしとらんだろ
言うなれば、マルチサービスコンテナファーストだよ
シングルサービスコンテナはオプションだ
お前さー、少しはレス読みなよ
分散用に、分けたコンテナをオプションで配布する、ことまではヒテイしとらんだろ
言うなれば、マルチサービスコンテナファーストだよ
シングルサービスコンテナはオプションだ
308login:Penguin
2021/01/16(土) 14:05:40.84ID:kbdLhinp■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 成果強調2日後に「中国は同盟国」…トランプ氏の掌返しで露呈した高市首相の“深刻な読み違え”と「日中関係は1945年に戻った」★2 [ぐれ★]
- 【☔】東京都心で34日連続雨 統計史上の最長記録更新 [ぐれ★]
- 中居正広、頑なだった独身主義に変化 長年の恋人Mさんは生活の軸足を中居の自宅に移行、生活拠点を1つにして“内縁関係”へ [Ailuropoda melanoleuca★]
- 【千葉】千葉市中央区の交差点で乗用車が炎上…車内から性別不明の3人の遺体 トラックと衝突 [ぐれ★]
- 「路上で突然突き飛ばされたり、殺害予告が届いたりする日本での日常のほうが、私には怖くて危険」渡邊渚が綴る「世界を旅する理由」★2 [Ailuropoda melanoleuca★]
- “実家暮らし=依存”は偏見…「子ども部屋おばさん」の本音 SNS「ニートと勘違いされる」「家事は親と分担」 [首都圏の虎★]
- 【実況】博衣こよりのえちえち朝こよ301回逆凸アリ🧪
- トランプさんが急に米中同盟と言い出した理由が判明、中国がアメリカ大豆のほぼ全在庫を買い付けるレベルで購入してた [709039863]
- 230gのピーナッツの袋1日で食べちゃった
- 元世界のリーダー安倍さん
- 【画像】北海道根室市、学級崩壊www [779857986]
- 航空自衛隊員さん、基地内に停めた車中にて大麻リキッドを一発キメて懲戒免職 [152212454]