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
2020/12/27(日) 10:10:46.14ID:dyOXY6iu
Docker Desktop for Windowsの3.0でもHyper-Vバックエンド対応してるだろ?
WSL2バックエンドは、たぶん俺しか困らないだろうなってバグ
(カーネルの古いAPIの削除による仕様?)があって切り替えれないでいる
バグの内容を言うと、困る人は俺ぐらいだろうなって特定されかねないのでここでは言えないw
WSL2バックエンドは、たぶん俺しか困らないだろうなってバグ
(カーネルの古いAPIの削除による仕様?)があって切り替えれないでいる
バグの内容を言うと、困る人は俺ぐらいだろうなって特定されかねないのでここでは言えないw
2020/12/27(日) 13:56:05.75ID:h8j0trq0
windows sandbboxで試せばいいだろ
2020/12/28(月) 19:37:37.29ID:WwxpjbVt
2020/12/30(水) 12:55:14.64ID:ggs3i1Xp
podmanいいね
2020/12/30(水) 14:26:42.72ID:nRZrvQqz
podmanもっと使ってくれよ
このままrocktみたいに消えるのやだよ
このままrocktみたいに消えるのやだよ
2020/12/30(水) 14:40:54.65ID:ggs3i1Xp
Redhatが推してるから消えないよ
2020/12/30(水) 14:48:49.30ID:nRZrvQqz
消えないのと普及しないのは違う
もっとRedHatが開発した独自ツールが普及するといいのに
もっとRedHatが開発した独自ツールが普及するといいのに
2020/12/30(水) 14:50:03.13ID:ggs3i1Xp
dockerエイリアスはpodmanなので自動的に広まるよ
2020/12/30(水) 14:53:52.41ID:nRZrvQqz
まだ広まらないんだよ
なんでだよ?
なんでだよ?
2020/12/30(水) 14:58:35.32ID:nRZrvQqz
RedHat独自で普及したものがないのが不満
2020/12/30(水) 15:01:46.25ID:hGZGs2gE
rpmがあるやろ!
2020/12/30(水) 15:35:30.91ID:WcsKhyXe
本番クラスタはマネージドK8S
開発環境はDockerCompose
Podmanは…オンプレシングルノード本番専用?
開発環境はDockerCompose
Podmanは…オンプレシングルノード本番専用?
2020/12/30(水) 16:12:47.38ID:nRZrvQqz
RedHatにベンダーロックインされてる人が使うw
RedHatがDockerを切り捨てたから
それに従わないといけないのだ
RedHatがDockerを切り捨てたから
それに従わないといけないのだ
2020/12/30(水) 17:00:40.15ID:r9TksVgH
商用はRedhatだからpodmanに従ったほうがよさそうだね
2020/12/30(水) 17:04:03.17ID:nRZrvQqz
あとで移行すればいいよ
普及してから(そして大抵の代替技術は普及しないw)
普及してから(そして大抵の代替技術は普及しないw)
2020/12/30(水) 17:19:23.33ID:/V2k7qc7
podman 2〜Dr.ワイリーの謎〜
2020/12/30(水) 21:31:55.50ID:lasrj5XX
PodmanよりDockerRootlessのほうがええわな
2021/01/05(火) 10:35:05.44ID:a6MKPo5T
docker-composeはConfigMapに相当する仕組みが無いから不便ですね
2021/01/08(金) 18:53:27.20ID:MTOnxYZl
Wasmerも本格的に動き始めた
いよいよDockerの居場所がなくなってきた
いよいよDockerの居場所がなくなってきた
2021/01/08(金) 19:39:29.85ID:M4gsjCxc
rocktの登場で居場所はとうの昔になくなってたはずだが?
2021/01/09(土) 19:04:27.89ID:pshOY4NZ
自作ソフトのdockerイメージを作って配布しようとしているんですが、設定ファイルの類はどうするのが普通ですかね?
1. 配置するディレクトリを決めておいて使用する側でmountしてもらう
2. volumeを作ってそこに置いてもらう
3. デフォルトの設定ファイルをイメージ内に配置して、使用する側で上書きしてもらう
4. その他
ケースバイケースの場合は判断ポイントなどを教えてください。
1. 配置するディレクトリを決めておいて使用する側でmountしてもらう
2. volumeを作ってそこに置いてもらう
3. デフォルトの設定ファイルをイメージ内に配置して、使用する側で上書きしてもらう
4. その他
ケースバイケースの場合は判断ポイントなどを教えてください。
2021/01/09(土) 19:33:53.86ID:vXKDEOHB
設定の構文が複雑ならファイルをサポート
そうでないならコマンドライン引数、環境変数、ファイルを全部サポート
そうでないならコマンドライン引数、環境変数、ファイルを全部サポート
177login:Penguin
2021/01/09(土) 19:39:21.47ID:Xx9/0RY+ >>175
コマンドラインの引数や環境変数は?
Amazon ECSはこれらの方法でしか設定を入れられないから
環境変数で設定出来た方が便利
ECSの機能を使わず、ホスト上にファイルを配置しておけば設定ファイルも使えるが、わりと面倒くさい
k8sだとConfigMap、Secretの内容をファイルとしてマウント出来たりして便利だった
パスワードのような機密情報はコマンドライン引数にするとまる見えになるから
設定ファイルや環境変数にすべき
Traefikだったら複数の設定方式に対応してて
・コマンドラインの引数
・設定ファイル(場所は固定っぽい)
・環境変数
どれも自由に選んで使えた
設定ファイルは変更を検知して自動的に反映する設定も可能なので
別途、同じディレクトリをマウントしたサイドカーコンテナを作って
独自のConfigProvider作れたりとか
夢が広がりんぐ
コマンドラインの引数や環境変数は?
Amazon ECSはこれらの方法でしか設定を入れられないから
環境変数で設定出来た方が便利
ECSの機能を使わず、ホスト上にファイルを配置しておけば設定ファイルも使えるが、わりと面倒くさい
k8sだとConfigMap、Secretの内容をファイルとしてマウント出来たりして便利だった
パスワードのような機密情報はコマンドライン引数にするとまる見えになるから
設定ファイルや環境変数にすべき
Traefikだったら複数の設定方式に対応してて
・コマンドラインの引数
・設定ファイル(場所は固定っぽい)
・環境変数
どれも自由に選んで使えた
設定ファイルは変更を検知して自動的に反映する設定も可能なので
別途、同じディレクトリをマウントしたサイドカーコンテナを作って
独自のConfigProvider作れたりとか
夢が広がりんぐ
2021/01/09(土) 19:57:14.26ID:pshOY4NZ
2021/01/09(土) 20:04:36.62ID:vXKDEOHB
2021/01/09(土) 20:06:58.83ID:pshOY4NZ
2021/01/09(土) 20:07:54.19ID:73ECCOc1
>>180
それでいいです
それでいいです
2021/01/09(土) 20:09:58.67ID:73ECCOc1
設定ファイルの書き換えをスクリプトで行いたいユーザーのために、エントリーポイントにフックを仕掛けるとより親切
2021/01/09(土) 20:11:45.33ID:pshOY4NZ
なるほど、ありがとうございました!
2021/01/11(月) 02:15:48.57ID:zpurJaCg
rktって開発中止されてたのか。
185login:Penguin
2021/01/11(月) 11:19:34.46ID:ZlDEkoeZ >>184
気づくの遅くね?
気づくの遅くね?
2021/01/11(月) 12:15:18.06ID:89OcdB6i
結局dockerがメジャーなままなのね
2021/01/11(月) 12:36:25.01ID:NoL+Y9f0
podmanとK8S
2021/01/11(月) 12:58:21.16ID:r3JkpTc1
docker楽でいいね
docker-composeをアップすると自動でやってくれるレンタルサーバとかクラウドサーバないでっか?
docker-composeをアップすると自動でやってくれるレンタルサーバとかクラウドサーバないでっか?
2021/01/11(月) 13:10:41.31ID:dD9m53n1
Windows、Macはまだdockerが主流なんだっけ?
2021/01/11(月) 13:38:06.53ID:u+O//c17
K8SがデファクトスタンダードだからDCでの運用ノウハウを探すの大変だよ
素直にK8Sを勉強したほううがいい
大変なのは最初だけ
素直にK8Sを勉強したほううがいい
大変なのは最初だけ
2021/01/11(月) 14:10:04.17ID:5exndTNV
1ノードしかない場合のそのへんの得失ってどうなんだろう。
サーバー1台だとオーバースペックというか無駄に複雑になるだけにも思うけど。
サーバー1台だとオーバースペックというか無駄に複雑になるだけにも思うけど。
192login:Penguin
2021/01/11(月) 14:31:52.64ID:ZlDEkoeZ kubernetesは色々運用管理に必要なものが揃ってて便利だが
使わないならオーバーキルな気はする
k3sは知らんが、本家のKubernetesは重過ぎ
使うなら最初はマネージドで
コントローラーに追加費用要らない所も多い
GKEは高可用性無しなら1つだけ無料
AKSやLinodeは無料
DigitalOceanは無料だが日本のデータセンターが無い
EKSは未だに有料
使わないならオーバーキルな気はする
k3sは知らんが、本家のKubernetesは重過ぎ
使うなら最初はマネージドで
コントローラーに追加費用要らない所も多い
GKEは高可用性無しなら1つだけ無料
AKSやLinodeは無料
DigitalOceanは無料だが日本のデータセンターが無い
EKSは未だに有料
2021/01/11(月) 14:36:35.08ID:+C1ZDq6A
最初はっていうかずっとマネージドでいいと思う
オンプレミスでK8S管理は辛いよ
オンプレミスでK8S管理は辛いよ
2021/01/11(月) 14:39:59.24ID:btG2xty8
Kubernetesは起動するだけでメモリ1GBを消費する
つまり最小構成のVMではかろうじて動くが
そのVMを実用的に使うことはできない
最初からそれだけのメモリをKubernetesに
与えてもいいぐらいの規模が前提となってる
つまり最小構成のVMではかろうじて動くが
そのVMを実用的に使うことはできない
最初からそれだけのメモリをKubernetesに
与えてもいいぐらいの規模が前提となってる
195login:Penguin
2021/01/11(月) 14:42:29.11ID:ZlDEkoeZ k8sはYAMLの記述量が多過ぎなのも嫌われる一因
helmもYAMLとGoTemplateと言うやばい組み合わせのせいで汚い
kustomizeもなんかアレ
tankaとかkapitanならjsonnetで書ける
YAMLをテンプレートでやるより100倍いい
https://github.com/grafana/tanka
https://github.com/deepmind/kapitan
helmもYAMLとGoTemplateと言うやばい組み合わせのせいで汚い
kustomizeもなんかアレ
tankaとかkapitanならjsonnetで書ける
YAMLをテンプレートでやるより100倍いい
https://github.com/grafana/tanka
https://github.com/deepmind/kapitan
2021/01/11(月) 14:44:38.52ID:ewQPp1QF
k0sってどうなの?
2021/01/11(月) 14:52:17.06ID:NoL+Y9f0
docker-composeが一番だ
k8sよりswarmのほうが完成度が高いのになぜ使わないんだろう?
k8sよりswarmのほうが完成度が高いのになぜ使わないんだろう?
2021/01/11(月) 14:55:24.87ID:cXgFbbRO
複雑怪奇なYAMLベースのDSLを作らないでほしいね
2021/01/11(月) 15:47:51.70ID:biM4wIYB
*.hcl
わかりやすい
わかりやすい
2021/01/11(月) 16:13:41.30ID:ECUSqoWw
.hcl自体はわかりやすくても
それをもとに作られたDSLがなぁ
それをもとに作られたDSLがなぁ
2021/01/11(月) 16:38:58.12ID:5exndTNV
ところで質問。
docker-compose のサービスをいきなり docker run 相当で起動するんじゃなくて
docker create -> docker cp -> docker start みたいなことってできないのかな?
あるいは swarm や k8s だとどうだろう。
docker-compose のサービスをいきなり docker run 相当で起動するんじゃなくて
docker create -> docker cp -> docker start みたいなことってできないのかな?
あるいは swarm や k8s だとどうだろう。
2021/01/11(月) 16:40:52.22ID:89OcdB6i
なるほど。ただ、podmanであってもdockerfileの置き換えには至ってない雰囲気。
軽くしようとすると途端に難易度が高くなるツールだ
軽くしようとすると途端に難易度が高くなるツールだ
2021/01/11(月) 17:42:10.87ID:89OcdB6i
Buildahというのがあるようだ。
どの程度の性能か謎ではあるが……。
どの程度の性能か謎ではあるが……。
204login:Penguin
2021/01/12(火) 08:35:36.58ID:KVG+KHkJ >>201
docker-composeなら
ファイルはボリュームでマウントすれば良いし
イメージがshとかbashでのcommand実行に対応してれば何らかの初期化処理も可能だ
scratchイメージでsh入ってなかったら無理だが
docker-composeなら
ファイルはボリュームでマウントすれば良いし
イメージがshとかbashでのcommand実行に対応してれば何らかの初期化処理も可能だ
scratchイメージでsh入ってなかったら無理だが
205login:Penguin
2021/01/12(火) 21:10:42.90ID:KVG+KHkJ Docker BuildKit: faster builds, new features, and now it’s stable
https://pythonspeed.com/articles/docker-buildkit/
https://pythonspeed.com/articles/docker-buildkit/
2021/01/12(火) 21:11:26.23ID:M4v6YD34
直接そういうことができる機能は無いから別の手を考えないとならないということね。ありがとう。
2021/01/13(水) 15:47:51.27
docker-composeで独自モジュールをpipでいストールしたけど
その独自モジュールのソースを微妙に変更して、docker-composeやり直しても更新してくれない。。
docker-compose down --rmi all --volumes --remove-orphans
してもコンテナもイメージも残ったままなのがたぶん原因なんだろうけど・・
手動でポチポチ消すしかないのかなぁ
その独自モジュールのソースを微妙に変更して、docker-composeやり直しても更新してくれない。。
docker-compose down --rmi all --volumes --remove-orphans
してもコンテナもイメージも残ったままなのがたぶん原因なんだろうけど・・
手動でポチポチ消すしかないのかなぁ
2021/01/13(水) 16:01:06.97ID:bWUxShca
docker-compose build --no-cache
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:dw4hxnTe■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】小久保、中野、熊坂、齋藤が先発 日本代表デビューへ!! 森保J ベネズエラ戦スタメン発表【日テレ】 ★2 [阿弥陀ヶ峰★]
- 【米中】トランプ氏、「中国側へ武器売却」を提案 対台湾懸念で 米大使明かす ★3 [煮卵★]
- 50歳代の貯蓄中央値は単身120万円、二人以上世帯は700万円。40〜70歳代の貯蓄額を「世帯タイプ」で比べる [首都圏の虎★]
- 【野球】パ・リーグ M 3-8 F [9/28] 日本ハム水野3安打2打点、郡司7号満塁HR、福島5回無失点 ロッテ投手陣10四死球 [鉄チーズ烏★]
- 【アジア大会】『病名と名前を混同って…』福部真子で、TBSアナ大失態「やばくない?」「ひどかった…」ネット波紋 [ぐれ★]
- 【x】イーロン・マスク氏がX上で日本のテレビ局買収について質問し話題に「日本の政府は許可するでしょうか?」 (東スポ) [少考さん★]
- 【DAZN/地上波ほか】国際親善試合・日本 vs ベネズエラ ★2【キリンチャレンジカップ2030】
- 【DAZN/地上波ほか】国際親善試合・日本 vs ベネズエラ ★2【キリンチャレンジカップ2029】
- 西武線 3
- ハム専3
- こいせん3 全レス転載禁止
- はません ★6 ドカちゃん草
- 山尾志桜里「高市さんを批判する左の方々は、アメリカに媚びるなと言いながら中国は怒らせるなと言う」 [834922174]
- 【悲報】講談社、亜月ねねの自宅に凸した知的障がい者に法的措置へ・・・「警察と連携して対応していく」 [398059782]
- んなり☆まわり隊!(・o・;🍬)🏰
- アメリカと中国、互いに300億ドル相当の関税引き下げ [268718286]
- 習近平、タイガー魔法瓶を使っていることがバレ炎上 [462275543]
- 【動画】岩屋前外相、ふつうにイケおじだった [668024367]