X



トップページLinux
1002コメント360KB

Docker Part4

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
垢版 |
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/
0740737
垢版 |
2020/11/06(金) 03:38:32.11ID:P7wMRRj0
外部に公開するのは、

BB ルーターのポートフォワーディング・ポートマッピング・静的IP マスカレードの設定とか、
ファイアウォールのufw, netsh とか

でも、素人が公開すると、すぐに乗っ取られるw

ssh で、リモートログインの方が安全
0741737
垢版 |
2020/11/06(金) 03:43:44.05ID:P7wMRRj0
nginx, python の組み合わせは、珍しい。
普通は、web サーバーと、フレームワークの組み合わせ

nginx, Ruby on Rails とか、
Apache, WordPress とか
0742login:Penguin
垢版 |
2020/11/06(金) 08:55:36.62ID:Xq/Lj6my
>>726
ググってみたが、資格のページ無くないか?
0743login:Penguin
垢版 |
2020/11/06(金) 09:35:23.76ID:Pu2vwu4g
podman 見た感じだとわるくないんだけど、Red Hat のかじ取りというかやり方が微妙であんまり流行らないだろうなとは思う
0744login:Penguin
垢版 |
2020/11/06(金) 10:14:04.41ID:p0uOIOHq
pythonでdjangoとか使いますし
nginxと組み合わせるなんて珍しいとは思いませんよ
0745login:Penguin
垢版 |
2020/11/06(金) 10:17:28.74ID:4r/vlmbk
>>734
> podmanになるかは知らないけどDockerが何かに置き換えられるの可能性はあるだろうね。

当たり前だろ。「いつまでに」って期限をつけないならいつかは置き換えられる。
Linuxだって置き換わるだろ。100年後、200年後までLinuxのままだとは思えない。
0746login:Penguin
垢版 |
2020/11/06(金) 10:32:54.57ID:s01/YDPr
>>742
https://prod.examity.com/docker
にある。アカウント作ったら入れる。トラブったらチャットの人が即座に解決してくれる。
0747login:Penguin
垢版 |
2020/11/06(金) 10:35:51.92ID:s01/YDPr
>>745
そういう非現実的な話はしてないな。
デーモンじゃマズイ、と言っているんだからその問題が無視できくなれば
置き換わるだろ、と言うか自分たちが作ってるクラスタは置き換わってるし。
(あるバージョンからコンテナランタイムのDockerが消えた)
0748login:Penguin
垢版 |
2020/11/06(金) 10:37:25.40ID:s01/YDPr
>>744
まあそうだよね。
nginx+pythonで珍しいとか意味が解らんね。
0749login:Penguin
垢版 |
2020/11/06(金) 11:13:26.38ID:Pu2vwu4g
自分が使ったことない物をめずらしいって言ってるだけだろうから無視していいよ
0750login:Penguin
垢版 |
2020/11/06(金) 11:48:56.16ID:4r/vlmbk
>>747
だから世間がいつまでに置き換わるか言ってみ
当たるか当たらなかいかじゃなくて、お前がどれだけ
自分の説に自信と信念を持ってるかを判断してるんだよ

それとDockerはrktに置き換わるんじゃなかったっけ?w
0751login:Penguin
垢版 |
2020/11/06(金) 12:13:25.48ID:CC12inH7
この粘着性はどうやったら育めるんだろうな
0752login:Penguin
垢版 |
2020/11/06(金) 17:04:00.01
pylay with dockerでdjango+mysqlいけたけど
ロケットのおなじみの画面が表示されなくてALLOWED_HOST=['*']にすればいけた
あとchromeだとhttp://が弾かれることに気づかず(表示できたりできなかったりするので)めちゃくちゃハマった糞が
0753login:Penguin
垢版 |
2020/11/06(金) 17:16:59.44ID:rIUKx7DZ
>>731
知識は役に立たないけど、経験は役に立つということなんだろうな。
Dockerコンテナ作れるから、もう安心ということにはならないな。
また、別の新しい技術が登場する。
前の知識は役に立たない。
役に立つのは、試行錯誤や理解に必要な経験だなあ。
こういうのを結晶化なんとかというのだろう。

表面的な知識は異なれども、それを成り立たせる思想には共通するものがある。

こう考えると、特定のアプリ技術に関する資格なんて無意味だな。

IPとか、低レベルの技術はなかなか変容しないから、そのあたりの資格はあっても良いと思う。
0754login:Penguin
垢版 |
2020/11/06(金) 17:51:26.54ID:p0uOIOHq
Podmanx 2 Dr.ワイリーの謎
0755login:Penguin
垢版 |
2020/11/06(金) 19:45:08.08ID:4r/vlmbk
>>753
代替ツールを流行っても居ないのに、これからはこれ!とか
言ってる奴は大概、役に立たない知識で終わっちゃうよね
ツールの使い方じゃなくて、考え方を理解してる人は、
後からでもすぐに理解できるから、焦って未熟な段階で使う必要がない
ノウハウがたまってバグがあらかた解決してからでも遅くないし
0756login:Penguin
垢版 |
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
0757login:Penguin
垢版 |
2020/11/07(土) 00:16:16.97ID:eBGWX6aX
本番でも使えるが?
0758login:Penguin
垢版 |
2020/11/07(土) 01:25:54.40ID:2ambohnb
dockerの入門書にk8sも記述されていることもあるけど
k8s使う場合って複数サーバが必要になりますよね?
0761login: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/
0762login:Penguin
垢版 |
2020/11/07(土) 09:41:24.11ID:8zmwVowU
>>761
そのとおり。VMインスタンスで最小スペックだとメモリ4GBほどだが
k8sはそのうち1GBほどかっさらっていく
最小スペックのマシンは実質使い物にならなくなる
0763login:Penguin
垢版 |
2020/11/07(土) 11:00:12.29ID:ulFlM/B0
k3sはdqliteじゃなくてembedded etcdになるらしい
それって軽いの?
0764login:Penguin
垢版 |
2020/11/07(土) 11:18:34.87ID:VOHFkWyI
重いのはスペックが足りないからやー!
0765login:Penguin
垢版 |
2020/11/07(土) 17:29:16.56ID:XStoOlkj
k8sもメモリ食い過ぎだが、fluentdも酷い
たかがCPUとかメモリ使用率を取得するだけで数百MBもメモリを使用する
Ruby製なのが原因か知らんがC言語で作っていれば10MB程度しか食わないだろう
0766login:Penguin
垢版 |
2020/11/07(土) 18:19:29.17ID:tGPIOgJu
fluentd_v1.11使っているが2週間くらいでElasticにデータ渡さなくなる症状に悩まされているよ
docker-compose restartを定期期にする必要がある
0767login:Penguin
垢版 |
2020/11/07(土) 18:38:38.67ID:ulFlM/B0
>>765
そんなあなたにfluentbit
0768login:Penguin
垢版 |
2020/11/07(土) 18:53:43.84ID:E4RaZBn4
k8sとかが、いったい何をしてくれるのか全然わからない。
全然わからないから、使う気にもなれない。
概要を読んでみても、まるで遠い話をしているみたいに聞こえて、必要性を感じられない。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

それに、5・6 の違いをまとめた本も出ている。
だから、4 は相当古いと誰でも分かる
0801login:Penguin
垢版 |
2020/11/09(月) 00:32:28.40ID:UETPDkkc
どうして急にRoRの話しだすの... こわいんだけど
0802login:Penguin
垢版 |
2020/11/09(月) 02:02:44.37ID:llgGcWyv
RoRの事しか知らないからだろ。
わかって無いけど会話に参加したい(デキる男感をアピールしたい)
初心者心理。
0803login:Penguin
垢版 |
2020/11/09(月) 20:52:16.68ID:Kmn1m/pX
Dockerを仮想マシンのよう使う人って未だに居るんだな
0804login:Penguin
垢版 |
2020/11/09(月) 22:29:49.19ID:mIHqbD7W
べつにいいでしょ
ツールが使い方を決めるんじゃなくて人が使い方を決めるんやで
0805login:Penguin
垢版 |
2020/11/09(月) 22:41:51.92ID:mwf5KB+q
仮想マシンのように使うって具体的にはどういうことなんだろ
0806login: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
0807login:Penguin
垢版 |
2020/11/09(月) 23:40:05.64ID:t6dOYJYt
と無職が申しております
0808login:Penguin
垢版 |
2020/11/10(火) 02:11:20.23ID:VE0k1L0+
ググった単語を色々並べて、頑張ってるなw
散文詩みたいで意味がさっぱり通じないw

匿名掲示板でそんなに俺できるぜ感をアピールしたいの?なんで?
その心理がサッパリ分からないw
0810736
垢版 |
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を介した場合は大丈夫だった
0811login:Penguin
垢版 |
2020/11/10(火) 14:53:06.27ID:zR2u0HT2
香具師ってここ5年くらいで初めて見た気がする
0812login:Penguin
垢版 |
2020/11/10(火) 15:01:50.33ID:VE0k1L0+
>>810
pythonのhttpdって誰の権限で動いてるんだろう?
(分からないけど)/root/cgi-bin/ (?)に対する権限を持っているのだろうか?
結局コンテナに入ってプロセスの実行者とディレクトリの権限を確認しないと分からない気がする。
0813736
垢版 |
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以下だけでいいのかと思ってた
0814login:Penguin
垢版 |
2020/11/10(火) 23:49:00.42ID:CFyr5V3E
>>813
で、誰が動かしているのか理解して、0755にしたの?
0815login:Penguin
垢版 |
2020/11/12(木) 00:00:25.23ID:gGQuG0Gs
Docker compose stopでコンテナ止める時って結構時間掛かるのに
OSに対してシャットダウン掛けると即時停まるんだけど
これは本来保存されるべきデータが消えてる可能性ってある?
サービスかなんかでシャットダウン時に自動で何かデータを書き出すような処理入れるべきなのかな?
0816login:Penguin
垢版 |
2020/11/12(木) 01:55:07.35ID:cmzexViL
そりゃタイミング悪けりゃ消えるよ
当たり前じゃん
0817login: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上で動かしたとしても、そんなに早くは落ちないだろうし。
0818login:Penguin
垢版 |
2020/11/12(木) 04:08:50.18ID:tXLSOFMO
Dockerコンテナ内のcrontab -eで、デーモンのスケジュール再起動を任せたら、
oom Killerでホストが倒れてしまった。ホストにsshログインもできない状態に陥って大変あせった。データもっていかれるかと思ったが、再起動でなんとか復帰できた。

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

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

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

どっちにしろdockerというよりサービス固有の事情に見える
0825login:Penguin
垢版 |
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 は素晴らしいです。
0826login:Penguin
垢版 |
2020/11/12(木) 16:08:47.50ID:nXT2xhvU
俺はどちらかといえば「Dockerコンテナは仮想マシンじゃない」方の思想に近いから
コンテナごと再起動するのは普通というか自然だけど荒れるかな

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

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

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

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

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

こういう認識を持っているのです。
0830login: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=ネットワーク名 を指定しないと、インターネットへの穴を開けてしまって危険。

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

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

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

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

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

オーケストレーターごとにマニフェストを用意しなきゃならんのは面倒だ
オーケストレーターを選択するのも負担になる
マルチプロセスならdocker runだけでOK
これ以上にかんたんなものはない
0840login:Penguin
垢版 |
2020/11/12(木) 20:28:05.87ID:DTFxiNCU
>>837
コンポーズだとファイルが必要だし内容の理解も必要
docker runはファイル不要で面倒なことは考えなくていい
これ以上楽なことはない
■ このスレッドは過去ログ倉庫に格納されています

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