探検


Docker Part4

■ このスレッドは過去ログ倉庫に格納されています
2020/08/17(月) 00:19:36.93ID:PKLBL3Xf
Linuxが持つコンテナ技術を使った、仮想マシン必要ないアプリケーション仮想化技術で
アプリケーションのデプロイが用意になります

Docker(アプリ仮想化)は仮想マシンと併用して使うことで最も効果を発揮し
開発・テストで使ったDockerイメージと全く同じものを本番環境で使えます
さらにWindowsとmacOSでも同じDockerイメージが動きます。
(Linuxは仮想マシンが不要ですが、WindowsとmacOSは仮想マシン技術を併用して実現しています。)

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

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

http://www.docker.io/

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


注意 同じコンテナ技術を使うが異なるアプローチで仮想マシンの
代替を目指しているのがLXC。目的が全く異なるので注意
LXC(Linux Containers)
https://mao.5ch.net/test/read.cgi/linux/1330826939/
2020/11/06(金) 17:51:26.54ID:p0uOIOHq
Podmanx 2 Dr.ワイリーの謎
2020/11/06(金) 19:45:08.08ID:4r/vlmbk
>>753
代替ツールを流行っても居ないのに、これからはこれ!とか
言ってる奴は大概、役に立たない知識で終わっちゃうよね
ツールの使い方じゃなくて、考え方を理解してる人は、
後からでもすぐに理解できるから、焦って未熟な段階で使う必要がない
ノウハウがたまってバグがあらかた解決してからでも遅くないし
2020/11/06(金) 23:52:41.31ID:P7wMRRj0
Docker, Docker Compose は、本番では使えないから、
最も重要なものは、AWS, Kubernetes

Linux 財団のCloud Native Computing Foundation(CNCF)の卒業プロジェクトも。
Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd
2020/11/07(土) 00:16:16.97ID:eBGWX6aX
本番でも使えるが?
2020/11/07(土) 01:25:54.40ID:2ambohnb
dockerの入門書にk8sも記述されていることもあるけど
k8s使う場合って複数サーバが必要になりますよね?
2020/11/07(土) 02:05:56.71ID:A9UbMMtV
そらそうよ。
2020/11/07(土) 08:23:01.80ID:eBGWX6aX
1台でもいいよ
761login:Penguin
垢版 |
2020/11/07(土) 09:04:10.75ID:ulFlM/B0
k8sって重過ぎじゃね?
特にetcdが

minikubeも色々入れたらすぐ遅くなった

k3sだと小さなサーバー1台でも使える、データベースにsqliteとか他のも使えるらしいが
デメリットある?

sqliteはHAに対応してない
dqliteはsqliteの分散版で、HAに対応してるが実験的
と言うのは知ってる

https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/
2020/11/07(土) 09:41:24.11ID:8zmwVowU
>>761
そのとおり。VMインスタンスで最小スペックだとメモリ4GBほどだが
k8sはそのうち1GBほどかっさらっていく
最小スペックのマシンは実質使い物にならなくなる
763login:Penguin
垢版 |
2020/11/07(土) 11:00:12.29ID:ulFlM/B0
k3sはdqliteじゃなくてembedded etcdになるらしい
それって軽いの?
2020/11/07(土) 11:18:34.87ID:VOHFkWyI
重いのはスペックが足りないからやー!
2020/11/07(土) 17:29:16.56ID:XStoOlkj
k8sもメモリ食い過ぎだが、fluentdも酷い
たかがCPUとかメモリ使用率を取得するだけで数百MBもメモリを使用する
Ruby製なのが原因か知らんがC言語で作っていれば10MB程度しか食わないだろう
2020/11/07(土) 18:19:29.17ID:tGPIOgJu
fluentd_v1.11使っているが2週間くらいでElasticにデータ渡さなくなる症状に悩まされているよ
docker-compose restartを定期期にする必要がある
767login:Penguin
垢版 |
2020/11/07(土) 18:38:38.67ID:ulFlM/B0
>>765
そんなあなたにfluentbit
768login:Penguin
垢版 |
2020/11/07(土) 18:53:43.84ID:E4RaZBn4
k8sとかが、いったい何をしてくれるのか全然わからない。
全然わからないから、使う気にもなれない。
概要を読んでみても、まるで遠い話をしているみたいに聞こえて、必要性を感じられない。

だから、自分は素のままでDockerコンテナ使ってますよ。

何か一つこんなことができるよ的なことってないですかね。
2020/11/07(土) 20:07:06.04ID:AnDT9/b7
クラスタ組まないならcomposeでおk
クラスタ組む場合も自前ならswarmのほうが何かとお手軽で安定してる
composeもほとんどそのまま流用できる
AWSなんかはcomposeにも対応してるから今は無理してk8sを使う必要はない
2020/11/07(土) 22:47:47.96ID:3X/BADbo
k8s は、Auto Scale, Rolling Update, blue/green deployment
データセンター分離・ラック分離、多数決で意思決定

可用性・スケールアウトとか、全体の安全性が高い

Terraform も良い
2020/11/07(土) 23:57:22.23ID:E4RaZBn4
>>770
やっぱり、遠い話、雲の上の話
ぜんぜんぴんとこない
2020/11/08(日) 00:25:36.43ID:indWRCUE
docker環境で開発をしている人に質問なのですが
本番環境は別にdockerfile(もしくはdocker-compose.yml)を作っていますか?

本番環境ではソースコードをイメージの中に入れたいのですが
開発環境ではソースコードはホスト側に置いて、マウントしたいです
(開発中に1行書き換える度にイメージ作り直す訳にいかんし)

とはいえ別ファイルにすると(ソースコードをマウントしている)開発環境では動くけど、(ソースコードをイメージの中に含んでいる)本番では動かない
という可能性も出てきてしまう気がして、一般的にはどうしているのかを知りたいです
2020/11/08(日) 00:39:21.68ID:E0Efq9ms
動画配信サイトとか高負荷かつ安定稼働を求められるシステムなら採用する価値はあるかもね
でもなんとなくK8S使ってみたかった程度の気持ちで無意味に使ってる人も多い
2020/11/08(日) 00:40:33.67ID:zneumWca
>>772
開発と言っても「実機と同等の構成で動かしてみる」というのも含まれるけど
一般にソースコードを修正してデバッグしてみたいな開発作業中は
Dockerを使わないよ

今はWindowsでもWSLがあるし、Dockerを使わないで開発やテストができる
いちいちDockerの中に開発ツール(ビルドツールやらlintツールやや)
入れなくていいから一番快適だしね。

その上で開発プロセスの一環として実機に近い環境で
テストしたいときはDockerを使う
2020/11/08(日) 00:40:41.43ID:E0Efq9ms
>>772
テストはイメージ作ってやるから問題ないよ
2020/11/08(日) 00:43:27.55ID:zneumWca
K8Sは金がふんだんに有り余ってるようなところが使うようなイメージ
金を使って広大なK8S用クラスタを組んで、必要になったらコンテナ起動するけど
普段はクラスタの中に空きがあって、その部分にも金がかかってる
それでもOKな所が使ってる

それともK8Sを使ってコストを最小化するような話聞いたことある?
2020/11/08(日) 00:46:13.79ID:mgGpxjW7
>>772
Dockerfileは同一で、開発時はソースコードをADDしてるディレクトリに、バインドマウントしてあげるだけで良いのでは。
2020/11/08(日) 00:50:35.76ID:zneumWca
>>777
そう簡単な話ではない。開発用イメージには、運用用イメージに加えて
開発用のツールやライブラリを含めなければいけない
2020/11/08(日) 00:54:00.53ID:zneumWca
どちらにしろ、開発用イメージはそのまま運用で使うことはできない
これが大前提。だから別々に作らなければいけないが
それするぐらいなら開発にはDockerを使わないほうがいい

使用する言語のバージョンやライブラリを統一するのは
Dockerを使わずともできる
2020/11/08(日) 00:58:10.83ID:mgGpxjW7
>>778
うん、そういうケースがあるのは分かるけど、ライトなWeb開発とかだとこれで必要十分なことも多いよね。
あとは商用向けはマルチステージビルドで成果物だけ持ってくるとかできるし。
2020/11/08(日) 01:16:24.21ID:E0Efq9ms
開発者の裁量で好きなように開発すればいい
テストさえしっかりしてれば何も問題はない
しかし好きにしろとは言ってもプロジェクトとして推奨構成をas codeで提示したほうが親切だろうな
ならDockerfileとdocker-compose.ymlが最も手軽だろう
782login:Penguin
垢版 |
2020/11/08(日) 03:08:06.81ID:kMpY44Ng
>>772
>本番環境は別にdockerfile(もしくはdocker-compose.yml)を作っていますか?

別です。
開発環境のDockerは本番機よりもっと簡略化されている
サーバー証明書もオレオレ。
あくまでも、うちのケースの話ね。

>本番環境ではソースコードをイメージの中に入れたいのですが
>開発環境ではソースコードはホスト側に置いて、マウントしたいです

それで良いんじゃないの?
開発環境はdocker-compose.override.ymlで開発担当部分のみvolumesで上書きとか。

>とはいえ別ファイルにすると(ソースコードをマウントしている)開発環境では動くけど、(ソースコードをイメージの中に含んでいる)本番では動かない
という可能性も出てきてしまう気がして..

何故、開発機の次が本番機なのさw?
テスティングやステージングは?問題があるなら、そこでわかるでしょう。
783770
垢版 |
2020/11/08(日) 03:09:14.51ID:FpP/Utr7
k8s は、マスターは多数決で決めるから、分散数は奇数にして、3, 5, 7 個

ラックの電源断に備えて、ラックも別々。
データセンターの災害に備えて、データセンターも別々

こんな安全性を考えるのは、大企業
2020/11/08(日) 03:12:19.79ID:Xb0LuSe/
多数決ってなに?
する意味あるの?
785770
垢版 |
2020/11/08(日) 03:38:50.21ID:FpP/Utr7
Ruby on Rails の場合は、Heroku, Cloud9 が最短。
git push するだけで、デプロイ完了!

他には、CircleCI, Capistrano
Chef, CookPad 製のItamae

Terraform
786770
垢版 |
2020/11/08(日) 03:52:42.87ID:FpP/Utr7
ネットワーク分断の場合に、
どれがマスターに格上げされるかを、多数決で決める

多数決には過半数が必要だから、ミニマムで、2:1。
だから分散数は、3, 5, 7 個と奇数にしておく

2個は、1:1 になるから、過半数を取れない。
4個でも、1:3 なら過半数を取れるが、2:2 になったら過半数を取れない

Raft という分散合意システムで、HashiCorp のConsul でも使っている
787login:Penguin
垢版 |
2020/11/08(日) 07:46:27.45ID:kMpY44Ng
そろそろスレチと言う気がしてきたな。
k8sの話したいのなら、航海1日目に行けよ。
788login:Penguin
垢版 |
2020/11/08(日) 09:26:29.05ID:Om5NOQR8
Kubernetes 航海1日目
https://mao.5ch.net/test/read.cgi/linux/1553389453/

超過疎スレなので来てやってください
2020/11/08(日) 10:37:59.27ID:YS1Huprs
>>786
奇数から1台死んだら偶数になって多数決で分断が起こるのでは?
2020/11/08(日) 11:34:21.65
docker pull django:latestってやるとバージョンが1なんですけど
古くないですか?
791login:Penguin
垢版 |
2020/11/08(日) 11:51:41.92ID:kMpY44Ng
>>789
多数決と言っているのはクラスタを構成するノードに対する比率を言っているのでは?
3ノード構成で2ノード生きているなら継続するよ、と。
あと分断耐性で言っているのはネットワークなので必ずしもノードが死んでいるとは限らない様な気がする。
クライアントからノード1、2には到達できるけど、3に到達する為のルーターが障害とかね。
2020/11/08(日) 12:06:00.13ID:3zTOdQJY
>>790
「古い」と答えてほしいのか?
2020/11/08(日) 12:31:20.80
>>792
いえ、どうして2でもなく3でもないのかな、と。
これならdockerhubからよりもベースpythonでpipしないといけないような
794login:Penguin
垢版 |
2020/11/08(日) 12:49:45.96ID:kMpY44Ng
>>793
django2とか3とをpullすりゃ良いんじゃね?
https://hub.docker.com/_/django
DEPRECATED と大書きているだろうが。
2020/11/08(日) 14:49:34.76
はい非推奨は知っていたのですが
オフィシャルイメージかつcopy and paste to pull this imageのプリントがそのままなので
他の方法やバージョン1でも問題がないのかと思っていました
2020/11/08(日) 15:10:37.66ID:2UugK007
非推奨と書いてあるのが読めて最終更新日からどれだけメンテナンスされてないか確認できたら
問題ないかどうか判断できるよね
2020/11/08(日) 15:25:08.18
その判断の仕方だとどちらにも取れるのでは
問題かどうかは主にpythonのバージョンに依存するような・・
要は問答無用で1は非推奨なのか、安定版なのか
みたいな
2020/11/08(日) 16:06:24.64ID:YfDIKFy0
「自分の環境にとって許容範囲かどうか判断できるだろ」って意味じゃないの
だからどちらとも言う必要がない
2020/11/08(日) 16:39:49.54ID:dgqq6PlR
それはdjangoのほぼ全部の仕様把握してないと無理
2020/11/08(日) 22:38:23.93ID:FpP/Utr7
Django のバージョンが分からないのは、おかしい。
自分で使うバージョンを決めるものだから

Ruby on Rails なら、6 の本が有名著者で、6冊以上出ている。
黒田努、掌田津耶乃、パーフェクト・シリーズなど

それに、5・6 の違いをまとめた本も出ている。
だから、4 は相当古いと誰でも分かる
2020/11/09(月) 00:32:28.40ID:UETPDkkc
どうして急にRoRの話しだすの... こわいんだけど
802login:Penguin
垢版 |
2020/11/09(月) 02:02:44.37ID:llgGcWyv
RoRの事しか知らないからだろ。
わかって無いけど会話に参加したい(デキる男感をアピールしたい)
初心者心理。
2020/11/09(月) 20:52:16.68ID:Kmn1m/pX
Dockerを仮想マシンのよう使う人って未だに居るんだな
2020/11/09(月) 22:29:49.19ID:mIHqbD7W
べつにいいでしょ
ツールが使い方を決めるんじゃなくて人が使い方を決めるんやで
2020/11/09(月) 22:41:51.92ID:mwf5KB+q
仮想マシンのように使うって具体的にはどういうことなんだろ
806login:Penguin
垢版 |
2020/11/09(月) 23:23:36.46ID:Zesq5BDu
Docker, Kubernetes は、immutable。
状態を持たない

すべて破棄してから、作るのが基本。
サイボウズのkintone では毎日、破棄してから作っている

AWS などを知らない香具師が、コンテナ内に状態を持とうとする。
クラウド・コンテナの機能の、区別ができない香具師

Cloud Native Computing Foundation(CNCF)の卒業プロジェクト、
Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd

他には、はてなのMackerel, DataDog, Elasticsearch などを、知らない香具師。
コンテナを仮想マシンのように使うなって、延々と言われているw
2020/11/09(月) 23:40:05.64ID:t6dOYJYt
と無職が申しております
2020/11/10(火) 02:11:20.23ID:VE0k1L0+
ググった単語を色々並べて、頑張ってるなw
散文詩みたいで意味がさっぱり通じないw

匿名掲示板でそんなに俺できるぜ感をアピールしたいの?なんで?
その心理がサッパリ分からないw
2020/11/10(火) 02:22:13.72ID:kmSrn2NE
と言ってみた
810736
垢版 |
2020/11/10(火) 14:28:17.26ID:KAsBN9EE
>>739
すいませんポート開くの忘れてただけだった

$ docker run -itd -v /root:/var/www/html [イメージID] bash
を
$ docker run -itd -v /root:/var/www/html -p 8000:8000 [イメージID] bash
とやればできた

が、今度はcgi-bin内にアクセスしようとするとダウンロードになってしまう
・cgi-binとcgi-bin/sample.pyのパーミッションを755
・sample.pyの一行目に#!/usr/bin/env python
・改行コードはLF
とやっても
PermissionError: [Errno 13] Permission denied: '/var/www/html/cgi-bin/sample.py'
が出てしまう

自分のホストPCでローカル環境なら大丈夫だった
あとplay with dockerでnginxを介した場合は大丈夫だった
811login:Penguin
垢版 |
2020/11/10(火) 14:53:06.27ID:zR2u0HT2
香具師ってここ5年くらいで初めて見た気がする
812login:Penguin
垢版 |
2020/11/10(火) 15:01:50.33ID:VE0k1L0+
>>810
pythonのhttpdって誰の権限で動いてるんだろう?
(分からないけど)/root/cgi-bin/ (?)に対する権限を持っているのだろうか?
結局コンテナに入ってプロセスの実行者とディレクトリの権限を確認しないと分からない気がする。
813736
垢版 |
2020/11/10(火) 18:07:34.85ID:KAsBN9EE
>>812
/var/www/html/cgi-bin/sample.py
のvarもwwwもhtmlもcgi-binも
全部 chmod 755したら無事
ウェブからsample.py実行できた・・
権限許可はvar/www/htmlの下のcgi-bin以下だけでいいのかと思ってた
2020/11/10(火) 23:49:00.42ID:CFyr5V3E
>>813
で、誰が動かしているのか理解して、0755にしたの?
2020/11/12(木) 00:00:25.23ID:gGQuG0Gs
Docker compose stopでコンテナ止める時って結構時間掛かるのに
OSに対してシャットダウン掛けると即時停まるんだけど
これは本来保存されるべきデータが消えてる可能性ってある?
サービスかなんかでシャットダウン時に自動で何かデータを書き出すような処理入れるべきなのかな?
2020/11/12(木) 01:55:07.35ID:cmzexViL
そりゃタイミング悪けりゃ消えるよ
当たり前じゃん
817login:Penguin
垢版 |
2020/11/12(木) 02:36:03.34ID:hi40oOUg
>>815
>Docker compose stopでコンテナ止める時って結構時間掛かるのに

docker stopコマンドは10秒程度で止まるように優先度を掛けてくるから。

https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/

When you issue a docker stop command Docker will first ask nicely for the process to stop
and if it doesn't comply within 10 seconds it will forcibly kill it.

docker-compose stop --time=1 とかすれば、結構即時に近い形で止まるように見える。
動いてるコンテナの重要度は自分で把握しているだろうから、永続データ無いのなら
time=1で良いんじゃね?とはいえmysql postgresとかあるなら危ないだろうけど。
VM上で動かしたとしても、そんなに早くは落ちないだろうし。
2020/11/12(木) 04:08:50.18ID:tXLSOFMO
Dockerコンテナ内のcrontab -eで、デーモンのスケジュール再起動を任せたら、
oom Killerでホストが倒れてしまった。ホストにsshログインもできない状態に陥って大変あせった。データもっていかれるかと思ったが、再起動でなんとか復帰できた。

ホストは2GB程度だが、そのコンテナ内でこのデーモンは1G程度も消費する。
デーモンの再起動のタイミングで、メモリ溢れが発生したようだ。

そこで、ホストにおいて、docker restart コンテナとするようにした。
そうすると、メモリ溢れなく、安全にコンテナごとデーモンの再起動ができたので報告しておく。
819login:Penguin
垢版 |
2020/11/12(木) 04:11:53.86ID:tXLSOFMO
>>811
香具師/野師/野士/弥四(やし)とは。
意味や解説、類語。盛り場・縁日・祭礼などに露店を出して商売したり、
見世物などの興行をしたりする人。
また、露天商の場所割りをし、世話をする人。
的屋 (てきや) 。 - goo国語辞書
2020/11/12(木) 05:51:20.27ID:wQ2Ny6Zh
そういうことじゃないから...
アスペムーブやめてほしい
2020/11/12(木) 06:10:39.65ID:/yqD0qKX
>>818
コンテナ内で何のプロセス動かしてんの?
2020/11/12(木) 08:42:14.46ID:tXLSOFMO
>>821
iaxmodemを複数個
2020/11/12(木) 08:44:03.06ID:tXLSOFMO
>>822
iaxmodemだけなら小さい消費だが、
それらをfaxgettyさせてhylafaxに接続すると、
5倍くらいに膨れ上がった。
2020/11/12(木) 09:54:41.95ID:nXT2xhvU
コンテナ内でのサービス再起動時にメモリが溢れるってのもよくわからんが、そのサービスの再起動の動作が特殊なのかね
再起動のための停止時には一時的にメモリ使うとか?

コンテナごと再起動するなら内部のサービスは通常の停止(あるいは強制停止?)+起動だろうから、メモリに問題ないのはまあわかる

どっちにしろdockerというよりサービス固有の事情に見える
2020/11/12(木) 14:22:14.87ID:tXLSOFMO
>>824
参考になります。

iaxmodemが始動されると、プロセスが生成されます。
その後、hylafaxを始動させて、
さらに別途faxgettyによって、両者を連結させるイメージです。(3者登場します。そのうち、iaxmodemと、faxgettyはたくさん。hylafaxとは、多対1の関係になっています。)

>>823のように、iaxmodemだけでは専有容量は僅かなんですが、
faxgettyさせると、膨れ上がります。

faxgettyは、hylafaxの関係者なので、
hylafaxがガーベージコレクトするようです。

以前テストした結果は、hylafaxの再起動時には、直ちにfaxgettyプロセスは消滅しました。

しかし、今回の環境ではそういう風にならなかったようです。
前回の環境はCentOS6でネイティブ、今回はCentOS7でコンテナです。
iaxmodemや、hylafaxのバージョンも上がっています。

いずれにしても、デーモンの再起動が特殊です。

逆に考えて、ネイティブ環境でも他の要因で同じ問題を引き起こすなら、
コンテナ環境であってよかったと思います。
docker restart faxContainerをcrontabでコンテナの外側ホストでスケジュールすれば良いのですから。

コンテナ内部でそういうデーモンの消滅のスケジュールを組むと、イメージ化されていることからタイミングの変更が困難になるので、
せっかくの利便性を損なうと思いました。
docker restart faxContainer は素晴らしいです。
2020/11/12(木) 16:08:47.50ID:nXT2xhvU
俺はどちらかといえば「Dockerコンテナは仮想マシンじゃない」方の思想に近いから
コンテナごと再起動するのは普通というか自然だけど荒れるかな

そもそも個別ソフトの事情でメモリ食いすぎるなら、ホストでOOM起こすくらいならコンテナにリソース制限するのがいいのでは
2020/11/12(木) 16:15:03.39ID:0EFH8yv9
Linux上でchrootを仮想マシンと思うやつは、どうにかしている。
2020/11/12(木) 18:00:39.93ID:hi40oOUg
>>826
荒れるっていうか・・・・
その事に対してコダワリ持ってるのって一人だよね?

殆どの参加者は、そもそもどうでもいい話題で、そいつの書き込みに
反応するのは、そいつがなぜ、VMじゃないからどうのこうのと反発する
必要があるのか分からないから。

イスラム原理主義者に向かって暴力行為やめろよ。そもそも宗教なんて
どうだって良いだろ?と言うのと変わらない。
829login:Penguin
垢版 |
2020/11/12(木) 18:24:47.49ID:tXLSOFMO
0番の親プロセスから連鎖的に、必要な環境(ディストリ標準体系)を組みた立てていくということを、「仮想マシン」とよんでいるだけですよね。
それに対して、例えば、helloworldバイナリを実行するだけなのが、非「仮想マシン」ということですよね。

前者は、systemctlによるコントロールができて楽です。
また、アプリを構成するデーモンに依存関係がる場合はとても楽です。

しかし、後者はそういう構成を組むのに別途考慮が必要になるのでお手軽さがなくなり、せっかのコンテナがとっつきにくくなってしまいます。

こういう認識を持っているのです。
830login:Penguin
垢版 |
2020/11/12(木) 18:51:28.32ID:tXLSOFMO
>>829
必要な環境(ディストリ標準体系)と言いましたが、最初にcentos7をdocker ハブから引っ張ってきているので、標準体系にはならないですよね。

最初に何が入っているのか知らないけど、

docker run --privileged -d --net=mynetwork --name centos7 centos:centos7 /sbin/init

のようにすれば、いわゆる「仮想マシン」風の操作性のコンテナができます。

あとは、yumなどでパッケージを導入すれば、
systemctlで制御ができます。

--net=mynetwork に指定するネットワークは、自分で作成が必要になります。
LAN に対して、ポート開放もいらなくなります。
ipfilterで制御するだけです。

--net=ネットワーク名 を指定しないと、インターネットへの穴を開けてしまって危険。

ネットワークの知識がいるので、
これが唯一難しい点ではないかと思います。
2020/11/12(木) 19:18:56.59ID:p5fdQuX8
個々のコンテナの中でsystemd動かしてrsyslogdでログ出してlogroteteまてやるとか無駄の極み
動かすプロセスは複数でもいいけど必要なものだけ動かすのがdocker的な考え方だよ
systemctlに頼らず起動コマンドくらい自分で調べろ

そんなにsystemd入れてinitしたいならlxcを熱烈推奨
832login:Penguin
垢版 |
2020/11/12(木) 19:35:45.36ID:N2n6jd6N
コンテナ内でsupervisordとか動かすのはアンチパターン
2020/11/12(木) 19:50:21.89ID:DTFxiNCU
gitlabはマルチプロセスを採用してるが?
834login:Penguin
垢版 |
2020/11/12(木) 20:03:22.37ID:N2n6jd6N
>>833
ごった煮版は手軽に試したい人向けだろ

まともに使いたい人はhelmチャート版か
よそのDockerイメージ使えって事だろう
2020/11/12(木) 20:08:40.88ID:DTFxiNCU
>>834
つまりマルチプロセスなら手軽に使えるコンテナが作れるわけだよね
ということはコンテナ分割と利便性はトレードオフの関係なんだよ
このことを無視してごった煮はダメだアンチパターンだとわめき散らすのは典型的な解ってない人
836login:Penguin
垢版 |
2020/11/12(木) 20:11:24.65ID:N2n6jd6N
>>835
helmチャートとかdocker-compose.ymlで配布してくれた方がカスタムしやすい。

ログやCPU使用率も各コンテナで分かれるので見やすい
よって利便性も複数コンテナの方が上
837login:Penguin
垢版 |
2020/11/12(木) 20:13:51.62ID:dtymEtIL
docker-composeで試せるものが
docker runで試せるようになったからって
そんな楽になったとは思えない
むしろ不便になってる件
2020/11/12(木) 20:14:05.40ID:cTCSqjp+
ほれみろ。仮想マシンのような使い方をした結果

いつものように苦しんでるではないかw
2020/11/12(木) 20:26:27.70ID:DTFxiNCU
>>836
カスタムはある程度は環境変数とかでできる
高度なカスタムが必要なら勝手に非公式で頑張れ
ほとんどの人は公式ので十分だ

オーケストレーターごとにマニフェストを用意しなきゃならんのは面倒だ
オーケストレーターを選択するのも負担になる
マルチプロセスならdocker runだけでOK
これ以上にかんたんなものはない
2020/11/12(木) 20:28:05.87ID:DTFxiNCU
>>837
コンポーズだとファイルが必要だし内容の理解も必要
docker runはファイル不要で面倒なことは考えなくていい
これ以上楽なことはない
2020/11/12(木) 20:28:29.96ID:DTFxiNCU
>>838
苦しまない
むしろ楽になってる
2020/11/12(木) 20:37:41.89ID:cTCSqjp+
ここで仮想マシンのような使い方をしようとして
簡単に解決できない質問が出てるのが苦しんでる証拠
2020/11/12(木) 20:39:06.48ID:cTCSqjp+
>>840
Dockerfileでたくさん面倒なことしてるだろ

docker-composeはyamlファイルを持ってくるだけ
Dockerfileと違って中身を理解する必要がない!(笑)
2020/11/12(木) 20:39:52.51ID:Pa1Yyy7i
では分割コンテナでいいから質問者が求める構成を提示してみて
できないならそれはマルチプロセスコンテナが悪いのではなく単純に難しい構成だったというだけだな
1日待ってあげるからどうぞ
2020/11/12(木) 20:41:12.65ID:LqH7vHMd
>>843
gitlabはdockerhubからpullするだけで使えるということも知らんのか
dockerfileなんか書かんよ
2020/11/12(木) 20:46:12.26ID:cTCSqjp+
>>844
論点がずれてる

単一であっても分割であっても
仮想マシンのような使い方をするのが間違ってると言ってる
2020/11/12(木) 20:48:37.23ID:cTCSqjp+
>>845
docker-composeもdockerhubから勝手にpullしてくれるってことも知らんのか?
誰かが作ったdocker-compose.ymlをgitとかからpullするのが増えるだけやろ

docker-composeは、docker runだとたくさん引数を指定するのが
めんどくさいってのを解決してくれるものだ

docker runするだけ(引数がたくさんで辛いよぉ)←これを見なかったことにするな
2020/11/12(木) 20:50:19.50ID:LqH7vHMd
>>846
仮想マシンのようなとは?
2020/11/12(木) 20:50:39.17ID:LqH7vHMd
>>847
docker composeはファイルが必要
2020/11/12(木) 20:51:25.98ID:cTCSqjp+
>>848
質問者が言ってるだろ

> 818 名前:login:Penguin[sage] 投稿日:2020/11/12(木) 04:08:50.18 ID:tXLSOFMO [1/7]
> Dockerコンテナ内のcrontab -eで、デーモンのスケジュール再起動を任せたら、
> oom Killerでホストが倒れてしまった。ホストにsshログインもできない状態に陥って大変あせった。データもっていかれるかと思ったが、再起動でなんとか復帰できた。

↑これが仮想マシンのような使い方
↓これが本来のDockerの使い方

> そこで、ホストにおいて、docker restart コンテナとするようにした。
> そうすると、メモリ溢れなく、安全にコンテナごとデーモンの再起動ができたので報告しておく。
2020/11/12(木) 20:52:43.41ID:cTCSqjp+
>>849
ファイルをコピーするのが難しいって話をしてんの?w

docker runで引数をたくさん指定するのと、その引数がファイルに全部書かれてるから
docker-composeするだけで起動できるのと、どっちが簡単ですかって話なんだが
852login:Penguin
垢版 |
2020/11/12(木) 21:14:01.17ID:N2n6jd6N
docker-composeも使えない男の人って…
2020/11/12(木) 21:25:45.69ID:cXD8oKci
Linuxでdocker使ってるんですけど
volumeマウントするとホスト上のroot権限のディレクトリができるのですが
対策ありますか?
nginxです
■ このスレッドは過去ログ倉庫に格納されています

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