探検


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/
2login:Penguin
垢版 |
2020/08/17(月) 04:20:29.77ID:6a0svHoE
>Dockerは主にウェブ業界でサービスのデプロイの必須技術になりました

>>1
は何も理解してない馬鹿。
すっげー前にDeployerを教えてあげて、それを納得したはずなのに何も理解していない。
マジでお前は、いつ学習が完了するんだよ。

https://mao.5ch.net/test/read.cgi/linux/1552023620/
>>651

何故話をこんなレベルまで戻すのか
2020/08/17(月) 07:42:54.73ID:7e1FicdI
> すっげー前にDeployerを教えてあげて、それを納得したはずなのに何も理解していない。

手動でデプロイしてんのか?
オートスケールどうするんだ?
Docker使わないと構築に時間がかかるだろ

Dockerはイメージのrun(内部で自動的にpullする)だけで構築が完了する
アプリが動く状態として完成された物が手に入る

Deployer?運用のことを全くやってないか
数台規模で夜間メンテナンスなんてのを
いまどきやってる程度の小さいレベルんだろうな
2020/08/17(月) 09:50:32.96ID:nMpEUDb7
> すっげー前にDeployerを教えてあげて、それを納得したはずなのに何も理解していない。

なんだこれ?妄想世界の住民か?

「すっげー前にDeployerを教えてあげて」
なぜ同じ人だと思ってるのか?

「それを納得したはずなのに」
納得したという妄想だろう

納得させたというレスがあるなら持ってきてみてくれ
妄想世界の住民だろうから、絶対に無理だろう
おそらく俺の予想は的中する
絶対に持ってこない
2020/08/18(火) 01:03:22.24ID:OHt1kNFE
buildkitっていうのがあるんだってな
環境変数で指定しなくてもデフォルトで利用できるようにしたほうがメリットないだろうか
2020/08/18(火) 05:36:30.13ID:gGD2VCkm
>>5
設計や動作が大きく変わってるから
長い検証期間を設けてるだけ
そのうちデフォルトになるだろうがすぐは無理

俺が知っている事例で言えばマルチステージビルドで
必要ない場合にビルドされなくなることがある
通常は問題がないだろうがビルドされているという
前提があったりすると問題が発生するだろう
2020/08/18(火) 12:05:16.19ID:CHI/Brij
buildpacksって
OSやプログラミング言語のランタイムの更新があった時に
開発者は何もしなくても運用者側だけでアップデート出来るのが長所?

しかし、package.json内の依存ライブラリの更新はそれで対応できるのか?
出来ないなら結局Dependabotみたいのは必要そう

微妙に互換性崩れてて
OSや言語のバージョン上げたら動かないとかもありそう
2020/08/18(火) 12:14:36.23ID:vrhRiUKv
運用者なんていない。あるのはシステムだけだ。
開発者が開発し、それを配布するときの面倒なごたごたを
システムが勝手ににやるだけだろう
開発者が楽になるためのツールだ
2020/08/18(火) 12:17:59.84ID:CHI/Brij
いや、Dockerfileを書かなくていいのが最大のbuildpacksの長所か
Dockerfileを書かなくていいので、プロジェクト間のコピペを抑止出来る

OSイメージやプログラミング言語のランタイム更新だけなら、リビルドしないことも可能らしい

CIでのビルドに焦点を当ててるように見えるが、
アプリケーションコードを含んでないイメージでローカル開発も可能なんだろうか?
2020/08/18(火) 12:35:39.81ID:vrhRiUKv
> アプリケーションコードを含んでないイメージで

なんだそりゃ?

Dockerイメージは(自分で開発している)アプリケーションコードを含むものだろ
自分で開発したイメージを配布・デプロイするためにDockerは使うんだぞ
2020/08/18(火) 12:37:05.32ID:vrhRiUKv
自分で開発してないイメージはDocker pullして使うものだ
例えばMySQLとかnginxイメージとか

ああいうのは、本来はMySQLとかnginxの開発者が
作ってイメージとして提供するもの
実際にはDocker社が提供しているがね
2020/08/18(火) 12:41:10.12ID:CHI/Brij
>>10
PHPでの開発の時
ローカル開発の時はphpのコードはボリュームマウントして入れるが

本番環境で使う時は予めphpのコードが入ったイメージをCIで作っておいて
それをプルしてきて動かす
2020/08/18(火) 12:46:32.31ID:vrhRiUKv
>>12
それはDockerの本来の用途ではない
2020/08/18(火) 12:47:33.81ID:CHI/Brij
>>13
何が?
2020/08/18(火) 12:49:21.12ID:6tCAoz+3
>>10
アマチュアっぽい
開発中も無駄にdocker buildしてそう
2020/08/18(火) 12:51:02.02ID:5RCX1vBv
またキチくん暴れてるのか
頼むからコテハンつけてくれ
2020/08/18(火) 12:57:12.68ID:CHI/Brij
同じベースイメージでローカルqgp環境の開発を行い
本番環境ではベース+アプリケーションのコードが入ったイメージを使う

ローカルと本番環境との差異が無くなるし
サーバーが何台に増えようとも
各サーバーはビルド済みイメージをプルして実行するだけで済む
2020/08/18(火) 12:58:14.95ID:CHI/Brij
ローカルのphp開発環境だった

12 factor apps的には本番環境のサーバーでビルドするのはご法度
ビルドはCIでやっとけ
2020/08/18(火) 13:19:35.69ID:jnSGFkqj
>>13
なぜ開発環境と本番環境を基本的に同一にしない?
Dockerなら、developmentもproductionも同じにできる。
2020/08/18(火) 13:23:22.29ID:vrhRiUKv
同じにするということはイメージにソースコードを含めるということだな
2020/08/18(火) 13:24:53.94ID:vrhRiUKv
>>15
開発中はDockerを使わない
テストで使えば良いのだ
2020/08/18(火) 17:50:23.81ID:aQjsMjCJ
あぁ
やっぱアマチュアか
2020/08/18(火) 19:28:38.84ID:dsb1JtiX
新人「せんぱぁ〜い。バグ報告書どおりにやったのに違うエラーがでるっス!助けてくださいよ〜(´;ω;`)」

べテラン「どれどれ…おいなんでDockerがあるのに使わないんだ!お前のとこだけ依存ツールのバージョンが違うじゃないか!」

新人「テストだけDocker使えばいいと思ったんスよぉ〜(´;ω;`)」

ベテラン「そもそも開発環境作るの手間だろ。なんで手間かけてトラブルの可能性を増やしてんだお前。マゾか?」

新人「いや〜苦行インストールしたほうがなんかやった感あるじゃないッスか😁いひひ」

ベテラン「はぁ…お前今日アサインしたタスク終わるまで帰るなよ」

新人「そんなあああああああ。゚(゚´Д`゚)゚。」


これ半年ぐらい前の出来事
2020/08/18(火) 21:54:11.70ID:OHt1kNFE
前スレの結論ってどうなったの?
2020/08/18(火) 22:35:26.33ID:vrhRiUKv
>>23
そういうことを防ぐために例えばRubyでは
Gemfileという仕組みがある

Dockerを使った所でバージョンの固定なんかできんよ
ディストロに入っているライブラリだけを使って開発するんじゃないんだから
むしろディストロに入ってないライブラリを使うことが多い

Dockerの中でGemfileを使ってバージョンを指定しているのであれば、
同じようにDockerを使わない場合もGemfile使ってバージョン指定をするだけの話
Rubyのバージョンも.ruby-versionでしていする

もちろん他の言語でも同様の仕組みがある
2020/08/18(火) 22:43:53.31ID:vrhRiUKv
> ベテラン「そもそも開発環境作るの手間だろ。なんで手間かけてトラブルの可能性を増やしてんだお前。マゾか?」

Dockerは開発環境を作るためのものじゃない
何度もいわれていること
2020/08/18(火) 23:10:08.52ID:aAEc1TPV
開発環境を作るためのものでもあるし他のためのものでもある
自分の狭い見識だけで道具の目的を決めつけようとすることは愚かだ
2020/08/18(火) 23:27:35.07ID:vrhRiUKv
環境を作るとかいって仮想マシンの代わりだと思ってるやつの発言はこんなに間抜け

コンテナ型仮想化Dockerスレ その2
https://mevius.5ch.net/test/read.cgi/tech/1569542871/416-

正しい使い方を知らないやつが開発環境とか言うんじゃねーよ
2020/08/19(水) 08:00:28.55ID:ReIRiGVJ
>>28
VSCode Remote Containersという拡張機能がVSCodeにある
Microsoftは間違っていたとでも言うのかwwwwwwww

https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers

The Remote - Containers extension lets you use a Docker container as a full-featured development environment. Whether you deploy to containers or not, containers make a great development environment because you can:

* Develop with a consistent, easily reproducible toolchain on the same operating system you deploy to.
* Quickly swap between different, isolated development environments and safely make updates without worrying about impacting your local machine.
* Make it easy for new team members / contributors to get up and running in a consistent development environment.
* Try out new technologies or clone a copy of a code base without impacting your local setup.
2020/08/19(水) 08:04:37.15ID:xs6pIZGX
仮想マシンはDockerと同じっていう別なキチガイと
Dockerは開発環境に使えないってキチガイの夢の共演
両方とも寝言は寝て言えっつーのw
そんなの言ってるのお前だけだから
2020/08/19(水) 08:56:10.31ID:io50YOm5
アマチュアさんいつも大量レス
暇そうで羨ましい
2020/08/19(水) 20:46:39.72ID:2bqX/eA6
実装〜単体まではローカル端末上のDockerにコード置いたディレクトリマウントして使って、内結以降はイメージビルドして商用相当の開発環境にデプロイしてテスト、そのイメージをリポジトリにあげといて商用からはそれpullするだけって使い方が普通じゃないの?
2020/08/19(水) 21:52:59.61ID:io50YOm5
うん
2020/08/20(木) 09:25:23.96ID:M933wn+5
> 実装〜単体まではローカル端末上のDockerにコード置いたディレクトリマウントして使って、

デバッグどうするの?
デバッグ用のパッケージを入れるの?
そうすると本番環境とは厳密には違う状態になるよね?

どっちみち開発では便利さのために本番環境とは違う環境になるんだから
Docker使わずに開発しても同じことじゃない?
2020/08/20(木) 11:46:53.15ID:clJ3eFcE
できるだけ寄せていくだけだ
Alpineで動かすならAlpineで開発したい
でも支給マシンはubuntu、windows、mac、、、
2020/08/20(木) 11:56:48.78ID:clJ3eFcE
開発環境を汚したくないんですよ
dockerの特性上、1つのプロジェクトで様々な言語、言語バージョン、ミドルウェア、ツール、サービス、それらに依存するパッケージ、OSレベルの設定、、、
とまあとにかく多くのものに依存してしまう
そして開発者が従事するプロジェクトは1つじゃない
開発マシンにこれらを直接インストールして管理するのは大変だ
dockerならソースをpullしてコマンド打つだけ
別のプロジェクトが干渉する可能性も極めて低くなる

アマチュアさんみたいにAPPとDBのシンプル構成、別プロジェクトは無し
みたいな状況なら直接インストールでもいいかもしれんがね
2020/08/20(木) 11:57:00.03ID:/cAAGkAU
>>35
開発はディストリ依存にするべきじゃないよ
変更しづらくなる
2020/08/20(木) 11:58:58.49ID:/cAAGkAU
>>36
> 開発環境を汚したくないんですよ
汚す必要ないのでは?

> dockerの特性上、1つのプロジェクトで
Dockerの性質のものは一つもないね

> 開発マシンにこれらを直接インストールして管理するのは大変だ
全然大変じゃないよ。
そのためにrbenvなどの仕組みが普及してる

アプリを動かす環境は特定のディレクトリ以下にすべて入る
2020/08/20(木) 12:00:02.45ID:/cAAGkAU
もう随分と前から一つのマシン上に
複数の環境を同居させる方法がかくりつされてるんだがな
2020/08/20(木) 12:10:33.54ID:CAF7VxqO
>>37
クロスプラットフォームで動かす予定のないものをクロスプラットフォームで開発する予算は君が出すのかね?
2020/08/20(木) 12:11:30.98ID:CAF7VxqO
>>38
rbenvのようなちゃちな仕組みではいずれ限界が来る
君のところは構成がシンプルなのでなんとかなっているのだろうね
2020/08/20(木) 12:13:55.61ID:/cAAGkAU
>>40
クロスプラットフォーム?何を言ってるの?
どちらも同じLinuxなんだが
2020/08/20(木) 12:14:13.75ID:/cAAGkAU
> rbenvのようなちゃちな仕組みではいずれ限界が来る

ああ、知らないのか
無知はかわいそう
2020/08/20(木) 12:20:29.61ID:CAF7VxqO
>>42
Linuxにも様々なディストリがあることを知らないと晒してしまったね

>>43
しょぼい構成の案件に従事してる人は気楽そうでいいね
2020/08/20(木) 12:23:04.72ID:52tAvffs
>>41
それは来ない。
2020/08/20(木) 12:36:23.34ID:CAF7VxqO
>>45
小さい案件では来ないんだろうね
2020/08/20(木) 14:28:45.01ID:In43Z6cJ
Vagrantで十分って老害かと思ったら
その手の構成管理ツールも使えない老害が現れたのか

mysqlとかnginxとかmailcatcherとかminioとかは?
全部手作業でセットアップかよ?

CIはどうする?
老害だからCI知らないのか
2020/08/20(木) 14:30:10.53ID:9sifYD3t
>>47
rbenvで大丈夫だってさw
2020/08/20(木) 17:52:07.20ID:TlcrtJz0
dockerだと構築が楽ってだけだと思うけど
2020/08/20(木) 20:22:48.31ID:ehWIm4Gs
QA環境作らないの?
ローカル環境で動かしたら即本番?
そんな訳あるまい
2020/08/20(木) 21:16:16.18ID:4+rYKSi1
rbenvでおk
2020/08/20(木) 22:03:22.31ID:411ZBuPm
いやだめんどくさい
2020/08/20(木) 22:39:24.82ID:AIgOOxMJ
1つイメージを利用して、名前の違う2つの内容同じコンテナを実行したら
メモリは2倍消費されますか?
2020/08/20(木) 23:18:45.42ID:/cAAGkAU
>>53
それは同じプロセスを2つ起動したらメモリは
2倍消費されますか?と言ってるのと同じ
Dockerの話とは関係ない
2020/08/22(土) 08:13:20.37ID:zJL0+534
>>53
2倍になるよ
ただLinuxにはKSMという仕組みがある
それで消費を削減できる
2020/08/22(土) 14:45:43.47ID:OVE76S7F
そうなんですね
今はnginxとapacheでリバースプロキシでマルチサイトを構築してるんですが
dockerのほうがPC移行したときにすぐ構築できるので楽だと思ったんですよね
2020/08/22(土) 16:43:09.55ID:7423Yszc
apacheってオワコンじゃないの?

PHP動かす用ならnginxとphp-fpmの方が良い
2020/08/22(土) 16:53:43.56ID:7423Yszc
メモリーの少ないサーバーで動かしたいのなら
ますますnginxの方がよい
速いしメモリー消費が少ない
2020/08/22(土) 17:15:01.29ID:TzQkYMdW
何をしたいかによる
2020/08/22(土) 17:30:22.97ID:OVE76S7F
nginxをフロントに置いてPHPはapacheで動かすのがいいらしいっすよ
リバースプロキシていうみたいです
2020/08/22(土) 20:20:27.62ID:Jc3Xyyax
うちは本番環境がAWS ECSだからELBをリバースプロキシとして使ってる
nginx+php-fpmはその背後に配置

ECSはランダムなポート番号を自動的に選択して
ELBのターゲットグループにタスクを登録してくれる
新しいバージョンをデプロイする時も徐々に新しいバージョンに流す通信を増やして切り替えてくれる
いきなりブチッ!て切るようなことはしない

パスやドメインに応じたルーティングも可能

ELBじゃなくてnginxでも対応出来るが
nginx単体でちゃんと高可用性でやるのはたぶんむり
ELBの方が金が掛かるが便利
2020/08/26(水) 14:55:01.99ID:HGpUNZir
Docker Hubがコンテナイメージの保存期間に加えてPull回数にも上限を設定すると発表
https://gigazine.net/news/20200826-docker-hub-update-policy/

容量に関わらず100回固定?

複数IPを使うヘビーユーザーが出てきて
結局一般ユーザーが割りを食うだけになりそう
2020/08/26(水) 15:05:16.50ID:0H2mld0z
社内にキャッシュしてるでしょ普通
2020/08/26(水) 15:15:32.88ID:+IB2Mq+W
docker-compose.ymlで十分だから今の所イメージを保存する必要がこない
2020/08/26(水) 18:13:54.44ID:j27J8KXs
>>62
100回ってびっくりしたわ
6時間あたり100回か

それに「Pull回数の制限はイメージのPullを行う側が利用する」と書いてある
イメージごとじゃないな

どうやって判断してるんだろう?
2020/08/26(水) 18:14:46.08ID:j27J8KXs
> 匿名ユーザーの場合はIPアドレスをもとに制限されるとのこと。
書いてあったw
2020/08/26(水) 19:44:39.35ID:q6TP6I5D
NATゲートウェイ経由でプルしたら、全部同一IPからのプルになる?

NAT Gatewayによるアクセス元IPアドレスの固定
https://dev.classmethod.jp/articles/fix-sender-ip-address-with-nat-gateway/
2020/08/26(水) 19:54:20.02ID:jL7Jrgle
そんなケチるほど金ないのか
マイクロソフトに買い取って貰えばいいのに
2020/08/26(水) 22:18:00.90ID:L2fd2N25
pullしようとしたけどすでに最新だった場合ってどうなるんだろうか?
pullチェック時点でカウントされるのか
それとも実際にpullした場合でカウントされるのか
大企業とかではキャッシュサーバーが必要になるかもしれんな
2020/08/27(木) 06:58:43.21ID:foUCwOUe
>>69
というか、自前でレジストリ作れってことだよ。
2020/08/27(木) 07:22:31.31ID:+jIZgv+V
Circle CIとかGitHub ActionsとかのSaaSは
仮想マシンは同じIPを再利用する事ある?
同じユーザー扱いになってCIが急に失敗するようになりそう

レジストリのミラー作るのって
なんか難しそう
2020/08/27(木) 09:41:39.10ID:3ZMzxZkQ
>>70
レジストリをメンテするぐらいなら金払うよ
たった月5ドルだろ?
2020/08/27(木) 09:56:18.15ID:3ZMzxZkQ
>>71
別のユーザーによるpullでCIがこける可能性があるんだよな
でもそれはCIサービス側が対応する問題になるだろう
その対応の内容には安定したpullがしたければ
金払えっていうのも含まれるけどw

ちなみにオープンソースでツール公開してるんだけど、この間から
おそらく誰かがCIに組み込んだようでGitHubのGit Clone数が跳ね上がった
その数が大体1日500〜600cloneで、ユニーククローン数が300〜400clone
つまりGitHub側から見れば1日300〜400人が来て2回pullしてるように見えてる

このデータから一概に言えるわけじゃないけど、同じIPアドレスを使われる可能性は低いと思う
CI実行するたびにクラウドの仮想マシン作り直してるだろうし、クラウドの仮想マシンは
固定にしない限り作り直せば変わるわけで、問題が発生することは殆どないと考えてる
2020/08/27(木) 10:00:43.44ID:hq16/u5d
>>68
Docker社はずっと大赤字だろうけど、GitHub のようにプラットフォームとして成長していればいずれエンプラで黒字化するだろうという目論見だったのが、
KubeやECS等にエコシステムを乗っ取られエンプラ事業が大失敗に終わったことで完全に収益化の望みが断たれた
Docker Hubはプラットフォームといえども所詮はいくらでも替えのきくストレージに過ぎず、タダ乗りベンダー連中との間の差別化要因も乏しいためGitHubのような赤字を余裕で帳消しにするレベルの大型買収にも期待できない
もう焼畑しかないというわけだ
2020/08/27(木) 11:18:46.39ID:WVTFASAX
ふーん
Docker終わったな
これからはpodmanが勝つるか
76login:Penguin
垢版 |
2020/08/27(木) 13:41:59.77ID:rEVJhQj2
Dockerがエンプラで黒字なんて無理だろ。
そもそも本番機で使えるエコシステムがECSであれEKSであれ他社の製品だし。
しかも本命は不在だし。
問題がはっきりしているのに何でこの分野でDocker社は何も提供しないの?
個人的にはECSであれEKSであれ下で動くインスタンス(VM)がサービスの前面に
出てきている時点でDockerは本番機には使いたくない。
VM管理とコンテナ管理の二度手間以外の何物でもないからね。
アマゾンはよく理解してる様でAWS Fargateでインスタンス隠しているけど、普及しているかどうかは知らない。
Docker社とも関係ない
2020/08/27(木) 14:24:57.50ID:WVTFASAX
何を言ってんだ
ホスト管理がいやだからクラウドのコンテナサービを使うんだろうが
2020/08/27(木) 14:30:55.79ID:WVTFASAX
dockerを使わないと逆にインスタンス管理が大変になると思うが
2020/08/27(木) 15:21:38.64ID:x4abZMVm
また仮想マシンイメージ最強おじさんの登場?
80login:Penguin
垢版 |
2020/08/27(木) 15:34:48.81ID:rEVJhQj2
>>77
https://vmware-juku.jp/whatsvm/containers-benefits-why-kubernetes/2/

>Kubernetesは外部のOSSと連携することによってNATを経由することなく
>別のホストのコンテナ同士の通信を実現しています。
>OSSを利用する場合のいくつか選択肢がありますが、
>flannelを採用した場合はオーバーレイによるカプセリングを行うことで、
>従来の仮想マシンのようにIPアドレスを割り当てることが出来るようになります。

こういう単語が出ている時点でホストの管理もしなければならないのは明かだろ。
AWS Fargateで「ホスト」と言う単語が一切なくなるのなら、標準になるかもしれないけど
そうなるとコンテナランタイムがdockerである必要もない。
2020/08/27(木) 15:51:17.04ID:CDxtO8zr
dockerを採用するとhost machineの管理が単純化されるので全体としての管理が楽になるということですね
2020/08/27(木) 15:55:20.50ID:3ZMzxZkQ
>>80
> こういう単語が出ている時点でホストの管理もしなければならないのは明かだろ。

どういう理屈?

1. Kubernetesは別ホストと通信できます
2. しかもホストを管理しなくていいです

こういう話だよね?
どこからホストを管理しなければならないなんて話が出てきたの?
83login:Penguin
垢版 |
2020/08/27(木) 16:27:43.20ID:rEVJhQj2
>>82
いやいや意味が分からない。
ホストの管理をしなくていい→「ホスト」と言う単語は出てこない。
でなければならないって話だが。

何でDockerだとホストの管理をする必要が無いと思うの?
2020/08/27(木) 16:49:17.14ID:5Vf3cgc6
クラウドだから管理不要
■ このスレッドは過去ログ倉庫に格納されています

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