コンテナ型仮想化Dockerスレ その2 at TECH
[2ch|▼Menu]
[前50を表示]
350:デフォルトの名無しさん
20/08/14 21:55:17 yunbZ+YA.net
docker-desktop-proxy という仕組みを使えばWSL1でも
環境変数 DOCKER_HOSTを設定せずにDockerに接続できたはずだが

1. Docker Desktop 登場当初はWSLが存在しなかった。(たぶん)
2. 今はもうWSLでDockerを使うことが当たり前だが、当初はWindows+Dockerという使い方が想定されていた
3. WSL1の初期はターミナルを閉じてもWSL内でサービスを動かし続ける仕組みがなかった

あたりが理由だろうな

つまりDockerはWSLに依存していなかった。
WSL2登場でWSL2に依存することを前提する方向に舵をとったから
「WSL Integration」という機能もつけた
(「"WSL1" Integration」でないのはWSL1でも使える機能だからだろう)

351:デフォルトの名無しさん
20/08/14 21:56:40 yunbZ+YA.net
訂正

× 「"WSL1" Integration」でないのは
○ 「"WSL2" Integration」でないのは

バックエンドのことを「WSL 2 based engine」と
読んでるのとは対照的。用語を正確に使っている。

352:デフォルトの名無しさん
20/08/14 21:59:31.31 Fc7pCCli.net
winで直でDocker使ってる事自体が間違い
Virtualbox内部のLinux上で使え
Docker Toolboxのインストール:Windows編
URLリンク(qiita.com)
x 「Docker for Windows」
完全に地雷、これが地雷なのは常識。
基本的にMSが自称してる
「Dockerに対応出来てる」「Linux完全対応」
とか言うのは嘘だから信じてはいけない。
o 「Docker Toolbox」正しい方

353:デフォルトの名無しさん
20/08/14 22:03:28.93 7JiREuja.net
>>314
この時点ではブラウザで見れないと言ってるだけでlocalhostで見れないとは言ってない

>>315
なぜかlocalhost forwardingのことと決めつけ

>>316
正しい回答

>>317
docker hostのipがあったんだというセリフから
http://(docker host ip):80で無事にアクセスできたこと推測できる
ここでdocker host ipとはwsl2軽量仮想マシンのipでありwindows hostのlocalhostではない

354:デフォルトの名無しさん
20/08/14 22:31:37.47 7JiREuja.net
ようするにコイツは最初っから回答がズレてたんだな
その後はスタート地点を忘れてお互いあさっての方向にヒートアップしちゃってレスの流れがめちゃくちゃ

355:デフォルトの名無しさん
20/08/14 22:40:20 yunbZ+YA.net
>>353
> ここでdocker host ipとはwsl2軽量仮想マシンのipでありwindows hostのlocalhostではない

と決めつけ(笑)

356:デフォルトの名無しさん
20/08/14 22:47:49.16 yunbZ+YA.net
>>314 より
> 試しにWindows10 home上でdockerを動かしてapacheを稼働させているのだけど、ブラウザから見れないのは何が足りていないのだろうか。
>>353 より
> >>314
> この時点ではブラウザで見れないと言ってるだけでlocalhostで見れないとは言ってない

確かにlocalhostで見れないとは言っていない。
では「ブラウザから見れない」という発言は
どこに接続してみたのだろうか?
この時点ではdockerのIPアドレスがあったとは知らなかったはずだ
localhost以外のどこに接続したというのだろうか?
よく考えるとlocalhost以外にはないのである。
そしてもし localhostではなく本当にdocker hostのipアドレスで接続しているならば(できるのか?)
それは間違った(推奨されない)使い方である。

357:デフォルトの名無しさん
20/08/14 23:02:44.55 SCMnTycc.net
Windows 製のDocker は、互換性が低いでしょ?

358:デフォルトの名無しさん
20/08/14 23:04:17.26 qpbNOVZd.net
>>357
何と比べた何の互換性のこと?

359:デフォルトの名無しさん
20/08/14 23:14:51 n7X3KCUc.net
>>356
質問者のコメントにはDocker HostのIPがあることに気が付いた、とあります
これがこの事件の真相を示しているのですよ、警部殿

質問者はDocker HostのIPの存在に気が付き「何か」を行った
そしてその後、ブラウザからapacheにアクセスできないという問題が解決しています
であれば「何か」とはDocker HostのIPでブラウザからapacheにアクセスしたことで間違いないでしょうなぁ
そうでなければ、質問者はなぜDocker HostのIPなどという発言をしたのでしょうか?
localhostでapacheにアクセスしたのならそのような発言はしないはずです

360:デフォルトの名無しさん
20/08/14 23:46:18.72 gf+HqVCe.net
Docker HostのIPがあったんだねって言っただけだろ?

361:デフォルトの名無しさん
20/08/14 23:48:04 gf+HqVCe.net
> そしてその後、ブラウザからapacheにアクセスできないという問題が解決しています

解決したなんて書いてないよ

俺は、docker run -p 80:80で解決・・・というかWSL1時代からそうしてるけど
これで解決したと仮定するならば、俺はlocalhostで接続してるわけだけど?

362:デフォルトの名無しさん
20/08/14 23:50:01 wwpzFcpa.net
公式に推奨されている通りにWSL2のLinux側でDocker使うと、基本的には独自のIPアドレスが割り振られるからね

363:デフォルトの名無しさん
20/08/14 23:52:19 wwpzFcpa.net
>>361
WSL1の時代とは話が別。WSL2になってからネットワークがWindows側とは切り離されたから、ちゃんとホストのlocalhostにフォワーディングしてやらないとホストからはアクセスできない。

364:デフォルトの名無しさん
20/08/14 23:54:16 gf+HqVCe.net
質問者がDockerのHostのIPアドレスがあったと言っても
初心者ならDockerのコンテナのIPアドレスのことを言ってるかもしれないし
決めつけてはいけないな

>>363
うん。内部実装の話ねw

そういうゴタゴタを解決してWSL1時代と同じような(改善された)
使いかってを実現してくれてるのがDocker Desktopなわけ

365:デフォルトの名無しさん
20/08/14 23:57:33 gf+HqVCe.net
> WSL2になってからネットワークがWindows側とは切り離されたから
これはWSL2の話

Docker DesktopはそいうWSL2の制限を自動的に解決している

WSL2 と WSL2を内部で使っている Docker Desktop は
別の機能だってことを理解しよう
いくらWSL2の話をしても意味がないのである

366:デフォルトの名無しさん
20/08/14 23:59:52 wwpzFcpa.net
なんだキチガイがIP変えただけか

367:デフォルトの名無しさん
20/08/15 00:03:02.18 IbAC1Y4F.net
レス内容見ればわかるだろ?w
他の板にスレ建てるために時々変えてるよ

368:デフォルトの名無しさん
20/08/15 00:04:28.29 IbAC1Y4F.net
ああ、そうじゃないな
そういうレスしかできなくなったね
というべきだったなw
レスするなら内容に関してレスね
それ以外の話なら、まだ「レスしてない」とみなすしかないからね

369:デフォルトの名無しさん
20/08/16 12:46:01 0yBmCQ8t.net
>>357
Dockerのコンテナ上は同じじゃないの?

370:デフォルトの名無しさん
20/08/16 13:34:02 jyuZpbGn.net
全く同じというわけにはいかない
特にWSL2はカーネルにマイクロソフト独自のカスタマイズが入ってるから挙動がちょっと怪しい

371:デフォルトの名無しさん
20/08/16 13:38:43.36 uQxSrMDH.net
>>370
怪しい挙動がないのに、何を根拠に怪しいって言ってるの?

372:デフォルトの名無しさん
20/08/16 13:46:22 jyuZpbGn.net
>>371
他のDocker環境だとビルド通るDockerfileがWsl2バックエンドだとエラーになったり
俺はまだぶち当たってないけどネットワーク周辺でトラブってるってブログも見た記憶があるね

373:デフォルトの名無しさん
20/08/16 13:51:52.77 uQxSrMDH.net
「記憶があるからね」(笑)
先手打ったつもりだろうが意味ないぞ
どうせこのあとどこかを聞いたら
探したけど見つからないとか言い訳するんだろう?
次はお前のターン
どこにそんな事を言ってるブログが有るのか

374:デフォルトの名無しさん
20/08/16 14:26:04.38 LwUpK/sq.net
>>373
qiitaだったと思うが
ところでDockerfileの方はなんでスルーしたのw

375:デフォルトの名無しさん
20/08/16 14:28:10.51 uQxSrMDH.net
>>374
サイトじゃなくて記事を持ってきてね
>>373はDockerfileの話をしてるんだけど?
だからこっちも記事を持ってきてね
どちらもまた逃げるようなことはしないでねw

376:デフォルトの名無しさん
20/08/16 14:43:43.33 LwUpK/sq.net
>>375
FROM centos:6
RUN echo fack you.
まあ騙されたと思ってやってみ
こんな単純なDockerfileで環境差異が出るんじゃ他にどんなバグが潜んでることやら
まあはっきり言って実用レベルに達してないわな

377:デフォルトの名無しさん
20/08/16 14:44:34.01 uQxSrMDH.net
>>375
何の問題もなく動くが?

378:デフォルトの名無しさん
20/08/16 14:53:56.49 qZWgY+Ga.net
>>376
なんだこれ?
マジでエラーになるな

379:デフォルトの名無しさん
20/08/16 14:55:50.24 uQxSrMDH.net
じゃあそのエラーの内容を「コピペ」してみて
簡単だよね?w
あと引き続き ID:LwUpK/sq は
記事を持ってきてね
ID:LwUpK/sq は

380:デフォルトの名無しさん
20/08/16 14:58:59.71 uQxSrMDH.net
まだコピペできないの?
さっきの今で俺の書き込み見てるだろうし
コピペするだけじゃん

381:デフォルトの名無しさん
20/08/16 15:08:50.03 DvRlAlJ5.net
>>376
マジだった
>>377
ぷっwww

382:デフォルトの名無しさん
20/08/16 15:09:37.88 uQxSrMDH.net
なぜか「コピペして」と書いてあるのを読んでるのに
コピペしないと言うねw

383:デフォルトの名無しさん
20/08/16 15:10:08.66 uQxSrMDH.net
んで ID:LwUpK/sq はまだかね?
やっぱり逃げたかね?

384:デフォルトの名無しさん
20/08/16 15:30:44.30 LwUpK/sq.net
コピペしたあとのお前のセリフは「コピペじゃなくて作ったエラー内容だろ」だろwwww
自分で試せば秒でわかるのになんでやらんのかね〜
赤っ恥積み重ねて何がしたいんだこいつw

385:デフォルトの名無しさん
20/08/16 15:54:48.67 c0o5yhYz.net
>>383
静かになったな
逃げた?

386:デフォルトの名無しさん
20/08/16 18:27:20.30 uQxSrMDH.net
逃げたねw

387:デフォルトの名無しさん
20/08/16 18:39:59.97 LwUpK/sq.net
>>386
コマンド打ったか?
コマンドプロンプトの使い方わからんなら教えてやるぞ

388:デフォルトの名無しさん
20/08/16 18:50:51.15 vqnYz3fb.net
いつもはしつこくレスしてくるのに負けを悟ると驚くほど静かになるuQx

389:デフォルトの名無しさん
20/08/16 18:56:18.18 uQxSrMDH.net
ID:LwUpK/sq はまだ?
コピペしろって書いてるのに
ここまでコピペできなかったID 5つぐらい?
コピペしてきた人 0で
圧倒的にコピペできなかった人が多すぎるぞw

390:デフォルトの名無しさん
20/08/16 18:57:36.09 uQxSrMDH.net
正直Dockerの使い方もしらない気がしてきたな
FROMとRUNしか書いてないからなw

391:デフォルトの名無しさん
20/08/16 19:01:02.52 LwUpK/sq.net
>>389
>>384
コマンド打てよ
それで答えでるだろw
自分の手で負けを確認するのが恐いのかな?

392:デフォルトの名無しさん
20/08/16 19:09:16.42 uQxSrMDH.net
>>391
だから問題なく動いてるって言ってるだろ?
人の話聞いてないのか?
エラーが出ると主張してるのなら、そのエラーを貼り付ければいいし
動作に違いがあると主張してるのなら、その違いを具体的に言えばいいだけ
なのにIDの数が増える一方で誰もエラーの内容を書いていない
つまりエラーが存在しない人の数のほうが多い

393:デフォルトの名無しさん
20/08/16 19:11:23 LwUpK/sq.net
>>392
できてるならエビデンス貼ってみてよ
できるならだけどw

394:デフォルトの名無しさん
20/08/16 19:30:20.32 LwUpK/sq.net
他人にしつこくエビデンスを要求するのに自分はエビデンスを貼れないなんてことがあるのかなあ?

395:デフォルトの名無しさん
20/08/16 19:32:13.53 uQxSrMDH.net
>>393
はいどうぞ
じゃあ次はお前のターン。逃げずにコピペしろよ?w
$ docker build .
Sending build context to Docker daemon 1.963MB
Step 1/2 : FROM centos:6
6: Pulling from library/centos
ff50d722b382: Pull complete Digest: sha256:dec8f471302de43f4cfcf82f56d99a5227b5ea1aa6d02fa56344986e1f4610e7
Status: Downloaded newer image for centos:6
---> d0957ffdf8a2
Step 2/2 : RUN echo fack you.
---> Running in 2015425a3f33
fack you.
Removing intermediate container 2015425a3f33
---> 2eab2e340ae9
Successfully built 2eab2e340ae9

396:デフォルトの名無しさん
20/08/16 19:33:17.03 uQxSrMDH.net
> 他人にしつこくエビデンスを要求するのに自分はエビデンスを貼れないなんてことがあるのかなあ?
これなw

397:デフォルトの名無しさん
20/08/16 19:34:39.92 LwUpK/sq.net
>>395
新人研修でエビデンスのとり方は習わなかったのかね?
実行した環境がわからないんじゃそのエビデンスにはなんの意味もないぞ

398:デフォルトの名無しさん
20/08/16 19:36:05.07 uQxSrMDH.net
自分はエビデンスを貼れないなんてことがあるのかなあ?
(爆笑)
ブーメランやで

399:デフォルトの名無しさん
20/08/16 19:39:14 LwUpK/sq.net
>>398
>>397

400:デフォルトの名無しさん
20/08/16 19:41:07 uQxSrMDH.net
>>399
だから「他人にしつこくエビデンスを要求しているお前」が
実行した環境がわかるようなエビデンスをはれって

401:デフォルトの名無しさん
20/08/16 19:42:22 uQxSrMDH.net
あとあれほどいた、コピペもせずに俺も俺もと言ってた奴らが一斉に黙ったのも面白いな
それぞれの人(IDが異なる人)、もう一回出てきてよ?w

402:デフォルトの名無しさん
20/08/16 20:02:21.39 LwUpK/sq.net
>>400
違うなあ
先にしつこく要求したのはそっち
再三にわたってコピペがどーのこーの言ってた人が他人を納得させられるエビデンスを提示できないのはどうなんだろうね

403:デフォルトの名無しさん
20/08/16 20:11:07.37 uQxSrMDH.net
>>402
「エビデンス」といい出したのはお前だろ。スレ検索してみろよ
俺は単にエラーの情報が知りたいからそれを書けと言ってるだけ
で、またそうやって逃げるの?話をしてごまかしてるの誰の目にもわかってるよ
さっさとエラーの内容をコピペしろよ。何度目だよ?

404:デフォルトの名無しさん
20/08/16 20:14:33.65 EB65IbCN.net
>>403
エラーの内容を知りたいならWSL2バックエンドで実行すればいいよ

405:デフォルトの名無しさん
20/08/16 20:16:06.73 hHqe5wIQ.net
エビデンスwww

406:デフォルトの名無しさん
20/08/16 20:25:18.98 uQxSrMDH.net
>>404
だから俺の環境でエラーがでないから知ることが不可能
エラーが出ると主張している人がコピペすればいいのにしない。
言った本人はともかく、その他の俺もエラーが出ると言ってる人でさえ
全員(笑)がコピペをしない。つまりエラーがでてない人が圧倒的に多い

407:デフォルトの名無しさん
20/08/18 21:38:27 ZCkQ8Dn9.net
Dockerっていまいち便利になった感しないんだよなぁ
Windowsだとまず
LinuxのVM立ち上げる必要があるのと
ビルドという1手間がとても面倒なのが痛いな
理想的なのはVirtualboxの仮想マシンを
Dockerイメージ形式に変換出来たら嬉しい
いやむしろVirtualBoxにDockerビルドとか
push pull欲しい
Dockerfileとかcmmpose.ymlもGUIで生成したい

408:デフォルトの名無しさん
20/08/18 22:05:16 xyVx4U2r.net
へ?Linuxサーバーにインストールするのとちゃうの?

409:デフォルトの名無しさん
20/08/18 22:12:41 izZKA8kQ.net
何がめんどくさいんだ?

410:デフォルトの名無しさん
20/08/18 22:16:18.23 nBWkiWUW.net
テーマソング無いと流行らないんじゃないか?

411:デフォルトの名無しさん
20/08/18 22:17:50.08 c1cRfnKe.net
>>407
> Windowsだとまず
> LinuxのVM立ち上げる必要があるのと
お前が手間かかることしてるだけじゃんw
Docker推奨のやり方は
1. Docker Desktopインストール
2. Windows起動時にサービスが自動起動する
3. dockerコマンドが実行できる
Linuxの場合となにもかわらん

412:デフォルトの名無しさん
20/08/18 22:18:39.78 c1cRfnKe.net
>>407
> 理想的なのはVirtualboxの仮想マシンを
> Dockerイメージ形式に変換出来たら嬉しい
何度もいわせるな。Dockerはアプリを仮想化するものであって
仮想"マシン"(=ハードウェアエミュレータ)ではない

413:デフォルトの名無しさん
20/08/18 22:26:32.15 ZCkQ8Dn9.net
いやアプリって元々ソフトウェアやん
元々仮想的なものやん…

414:デフォルトの名無しさん
20/08/18 22:30:37.26 c1cRfnKe.net
>>413
意味不明。仮想の意味わかってないだろ
仮想メモリの仮想と、仮想マシンの仮想
両方の仮想の意味を説明してみ

415:デフォルトの名無しさん
20/08/18 22:31:57.48 c1cRfnKe.net
あと仮想ファイルシステム(VFS)も追加なw

416:デフォルトの名無しさん
20/08/18 22:39:21 ZCkQ8Dn9.net
仮想メモリは
物理メモリの非連続性を意識せずに
確保できるためのアドレスやな

VFSはextとかxfsとかの物理ドライバや
NFSなんかを
意識せんように一括でファイルパスアクセス
でアクセスできるようにするもんやな

つまり両方ともハード的な物理特性を意識せんように
するもんでええんか?

しかしアプリはDocker無くても
元々ハード的な特性はある程度意識しなくても
いいようになっとるやろ

417:デフォルトの名無しさん
20/08/18 22:48:54.93 c1cRfnKe.net
>>416
だからDockerは物理的なOS(カーネル+ユーザーランド)を
意識しないで良いようにするためのもの
> しかしアプリはDocker無くても
> 元々ハード的な特性はある程度意識しなくても
> いいようになっとるやろ
ならRubyで作られたアプリをWindowsで動かしてみ
もちろんRubyだけで動かずライブラリを使ってる

418:デフォルトの名無しさん
20/08/18 22:50:42.29 c1cRfnKe.net
WindowsやmacOSのようにOSが全く違う場合だけじゃなく
Linuxの場合も考えてみましょうか?
ならRubyで作られたアプリをお前が使ってるLinuxで動かしてみ
ただしアプリ開発で使ってるディストリとそのバージョンは秘密だ

419:デフォルトの名無しさん
20/08/18 22:57:19 ZCkQ8Dn9.net
なるほど、開発の時に動いたんと
まるっきり同じOSとディストリで動かしましょうっ
ちゅうことか。
せやけどそれならVirtualBoxでもできるで
仮想マシンごとエクスポートして別のマシンのVirtualBox
に移植すればええんや?
というか せやからVirtualBoxでDockerイメージに
変換出来たら便利やな言うとるんやで
ユーザーランドのアプリだけやなくて結局カーネルの
仮想化してるん同じやんけ

420:デフォルトの名無しさん
20/08/18 22:59:00 c1cRfnKe.net
> せやけどそれならVirtualBoxでもできるで
> 仮想マシンごとエクスポートして別のマシンのVirtualBox
> に移植すればええんや?

そのVirtualBox用仮想マシンをクラウド上の
AWSやGCPでどうやって動かすんだ?
はい詰んだ(笑)

421:デフォルトの名無しさん
20/08/18 23:00:30.98 ZCkQ8Dn9.net
せやから何遍も
VirtualBoxのイメージをDockerイメージに
変換出来たら便利や言うてるやないかい。

422:デフォルトの名無しさん
20/08/18 23:06:21 c1cRfnKe.net
>>421
Dockerは仮想マシンの代替として作られたものじゃないから
(糞重い)OSの起動処理自体が存在しないんだよ
つまり不可能

もちろんクソ重いOSの起動処理をやってもらっても困るんだがな

だってそうだろう?
例えば画像変換処理で、covert from.png to.png というコマンドを
色んな理由でビルドが困難だからDocker化しました

covert from.png to.png の代わりに
docker run covert from.png to.png とできます。
コマンドの実行開始から処理完了までの時間は殆ど変わりません
という話で

お前は、新たにLinux起動から始めるんか?

Dockerイメージとして作るものは、アプリ(+ライブラリ等)であって
OS作ってるんじゃねーんだよ

423:デフォルトの名無しさん
20/08/19 00:18:00.20 iJT1oUat.net
@あずま袋 (5分30秒)
URLリンク(youtu.be)
Aサニタリーポーチ(4分30秒)
URLリンク(youtu.be)
Bパッチワークコースター(5分30秒)
URLリンク(youtu.be)
Cレジ袋型エコバッグ(25分)
URLリンク(youtu.be)
Dプリーツマスク(11分)
URLリンク(youtu.be)

424:デフォルトの名無しさん
20/08/19 02:55:41 w/3evjlx.net
Ruby では、Linux 以外で動くかどうか、分からない。
Node.js など、すべての無料のソースコード、OSS エコシステムは、Linux。
だから、Virtual Box, WSL, Heroku, Cloud9 などを使う

Linux を使わない、ローカルPC 開発では、
Windows のMSYS2 よりも、Mac の方が互換性が高いから、Macを使う

最近は、Windows にも、WSLが出来たから、Linuxも使える

425:デフォルトの名無しさん
20/08/19 08:35:06 LclW4bis.net
コンテナは仮想マシンと言うより
プロセスを隔離する技術と
実行可能ファイル(と依存ライブラリ)をイメージにして転送する技術のセット

apt-get, bashや
各種CLIツールが入ってるDockerイメージも数多く存在するが
ビルド時に新しいツールをイメージにインストールしたり、
コンテナ内でデバッグしたりと言った利便性の為に用意されてるだけで
別に必須ではない
ただ単にメインのプロセスが起動する状態になってれば動く

Goなら依存関係を全て含む単一の実行ファイルが作れるので
実行ファイルだけを含むDockerイメージが作れる
scratchイメージでググれ

426:デフォルトの名無しさん
20/08/19 12:46:48.33 LjzvgdB9.net
コンテナってファイアウォールとか色々大事なもんが欠けてっからセキュリティガバガバじゃねえの?
本番じゃ使えないよこんなの

427:デフォルトの名無しさん
20/08/19 12:50:22.85 vMi8bMi7.net
ねえよ

428:デフォルトの名無しさん
20/08/19 13:02:48 V2Z9ZTvM.net
セキュリティ強化のためにpodmanを使うべきなんだろうな
でも慣れてるからdockerを使っちゃう

429:デフォルトの名無しさん
20/08/19 13:29:28.57 yUu+oXSq.net
bridgeモードだと独立したネットワークになる

430:デフォルトの名無しさん
20/08/19 20:22:49.61 QxiC5JMr.net
>>427
コンテナ=アプリ
おまえはアプリにファイアウォール入れるのか?
アプリを動かしてるOSに入れるもんだろ

431:デフォルトの名無しさん
20/08/19 20:52:34.40 z5LWjZdH.net
ネットワークモードがブリッジの場合、
ポートマッピングを設定しない限りマシンの外からコンテナに直接接続は出来ない
AWSならセキュリティグループの設定は必要
明示的に許可しないと外から一切接続できない
仮想マシンのインスタンスは
外から接続を許可したいポートだけ許可するか、
ロードバランサー等特定の相手にだけ許可する

432:デフォルトの名無しさん
20/08/19 21:23:02.27 bIJ+SeFj.net
>>422
Linux同士のディストリ間の差異は
ファイルシステムの構造と
格納物の差異でしかないから
ホストマシンのハードと
ホストのカーネルが有れば
コンテナごとにルートファイルシステムを
入れ替えればVMの仮想ハードの起動と
ゲストカーネル起動処理がなくなって軽量化
するってのがDockerの考え方か?
ならばVirtualBox仮想マシンイメージから
ファイルシステムの部分を抽出すれば
Dockerイメージに変換できて軽量化できそうやな。

433:デフォルトの名無しさん
20/08/19 21:41:11.17 AMkDCrIJ.net
>>432
おまえにわかりやすく言えば、Ubuntu等をセーフモードで起動して
CLIシェルだけが動いてる状態だよ
ディスクはあるだけで殆ど使ってない
GUIデスクトップも含めサービスは何も起動しない
そこから必要なアプリだけを起動する。軽いに決まってるだろ
> VirtualBox仮想マシンイメージから
> ファイルシステムの部分を抽出すれば
VirtualBox仮想マシンイメージに相当するDockerイメージが
公式で配布されてるから出来るできない以前に、やる意味がない
実質的にはファイルを配布しているだけ
事実tarファイルからインポートすることも出来る
VirtualBox仮想マシンイメージから変換するなら
すべてのファイルをtarに固めるだけ・・・ではなく
procなどの不要な部分を削除する必要がある。面倒なだけだなw

434:デフォルトの名無しさん
20/08/19 21:52:49.53 vMi8bMi7.net
>>430


435:デフォルトの名無しさん
20/08/19 23:49:02.65 F/55slEw.net
なんで頑なに仮想マシンイメージからの変換にこだわって
Dockerfile書かないんだ?
書けばいいだろ

436:デフォルトの名無しさん
20/08/19 23:50:50.64 AMkDCrIJ.net
GUIのインストーラーがないと
OSのインストールが出来ないからだろ

437:デフォルトの名無しさん
20/08/20 00:00:47.45 vn2k0Ok1.net
例えばffmpegコマンドをコンテナに閉じ込めて
ffmpegコマンドだけを実行したいのに
OSの起動、各種サービスの起動、なんてのを
やるとしたら大きなデメリットなんですよ

438:デフォルトの名無しさん
20/08/20 01:47:19.23 qjxJt4Hn.net
Dockerって結局
ホストマシン上の作業ディレクトリに
かなり依存してるんだよなぁ
Dockerfileやイメージビルド時に
ホストディレクトリからイメージ内にコピーする
ソースファイル
マウント ポートマップ
compose.yml
開発したホスト環境から離れたイメージは
これらも同時に搬送しないともう保守できない
従来の仮想マシンなら全部VM内に組み込まれてるけど
Dockerの場合全部外に飛び出しちゃってる

439:デフォルトの名無しさん
20/08/20 05:48:26 nfJPehze.net
>>438
え?仮想マシンの場合どうやって
ホストにあるソースコードを入れるの?え?え?

440:デフォルトの名無しさん
20/08/20 05:50:55 nfJPehze.net
つまりAさんがいじったソースとイメージを
Bさんが続きをやる時や同時に作業する時どうするの?

441:デフォルトの名無しさん
20/08/20 05:51:56 nfJPehze.net
今から仮想マシン(数GB)を送りますので
あとはよろしくおねがいします
とかやるの?(笑)

442:デフォルトの名無しさん
20/08/20 05:53:41 nfJPehze.net
仮想マシン(VirtualBox)で開発が終りました。
今から、あの、本番環境のLinuxサーバーに反映します。
仮想マシンイメージがそのまま使わないので
その今から構築します
ってやるの?w

443:デフォルトの名無しさん
20/08/20 05:55:19 nfJPehze.net
仮想マシンを使って開発すると問題になるのが
私の仮想マシンでは動くんですが、本番環境の仮想マシンでは動かないんです
ってなることなんだよな
再現性が取れない
仮想マシンに入っていって一つ一つ違いを調べないといけない

444:デフォルトの名無しさん
20/08/20 06:04:42.67 jnIsym1E.net
Docker使わないやつって、本番環境で
Linux GUIデスクトップ環境が動いていてもいいじゃない
って思っていそうw

445:デフォルトの名無しさん
20/08/20 08:56:27.76 nWR09WFB.net
Chef で、数千台を構築してる
大手鉄鋼では、Open Stack とか

446:デフォルトの名無しさん
20/08/20 09:05:22.81 Myo84Br3.net
そのChefでなにをやってるかなんだよな
そのレシピはAWSで動きますか?GCPで動きますか?
まあ普通は動かない。なぜならその下位のインフラに依存したものがあるから
しかしアプリケーションだけは動かせるのではないだろうか?
OSに依存してるから動かない?なら動かせるようにしよう
コンテナに動かすのに必要なもの全てを入れればいい
そうすることで、インフラで必要なものとアプリケーションで必要なものを分離できる
そうするとインフラが変わってもアプリケーションを動かすことが出来る
それがWindowsやmacOSなどの開発環境やテスト環境、
大好きな(笑)VirtualBoxなどの仮想マシンでも動かせることにつながるわけ
VirtualBoxで開発環境を簡単に作れるようにするためのDocker
何度もいわれてるようにDockerは仮想マシンと組み合わせて使うもの
Chefを使うのはいいんだよ。だけどアプリケーションに依存したものは
取り除きましょう。その部分をDockerにしましょう
Chefで複雑なアプリケーションのための準備(言語やライブラリのインストール)はするなってこと

447:442
20/08/20 10:02:01.17 nWR09WFB.net
Ruby on Rails では、
Chef で、OS を構築して、
Capistrano で、アプリをデプロイして、
ServerSpec で、構築をテストする
Open Stack, Terraform
Docker, Kubernetes

448:デフォルトの名無しさん
20/08/20 10:03:54.58 Myo84Br3.net
それがDockerを使うと
Chef でDockerサーバーインストール済みのOSを構築して
Docker pullでアプリをデプロイと超簡単な作業になるんだよな

449:デフォルトの名無しさん
20/08/20 12:01:16 H4zJCt8n.net
テラフォーマーズ
アンシブル
ドッカーン
弊社はこの3段階で管理しております

450:デフォルトの名無しさん
20/08/20 13:04:19.50 KetCJMaL.net
>>435
手間なく手がるに変換できるならとりあえずそれでって要求はあってもおかしくない
既存資産はdockerのこと考えてないからdockerfileにしようとすると案外めんどくさいからね

451:デフォルトの名無しさん
20/08/20 13:16:16 KHHtBj+5.net
>>450
変換しても動かないんですが
なんのために変換するんですか?

452:デフォルトの名無しさん
20/08/20 13:34:00.47 UjCnOWKd.net
>>451
「変換」ができてないからやろ。
うまくやればやってやれないことはないはず。
そういうサポートがあってもいいとは思うな。
保証は大変そうだけど。w

453:デフォルトの名無しさん
20/08/20 13:46:12.46 KeO7e+gn.net
変換サービスって既になかったっけ?
Azureかどっかで見た気がするが興味ないから忘れた

454:デフォルトの名無しさん
20/08/20 14:00:38.58 KHHtBj+5.net
>>452
だから変換なんて無理なんだって
initが違うんだから

455:デフォルトの名無しさん
20/08/20 14:02:57.05 KeO7e+gn.net
いやだから確かもうあるって
名前忘れたから探して見つかったらサービス名教えて

456:デフォルトの名無しさん
20/08/20 14:48:54.26 UjCnOWKd.net
>>454
そこは保証外でええがな。
run引数なりCMD指定なりをちゃんと書くのは、コンテナをつくる側の責任にしとけば。
>>453
やっぱあんのか。w

457:デフォルトの名無しさん
20/08/20 20:41:51.52 KHHtBj+5.net
>>456
それなら単に外部ドライブを接続した
別Linuxをセーフモードで起動してるのと変わらん
変換するのは簡単だよ?
仮想マシンイメージのファイルを全部tarに吐き出せば終り
あとはどのファイルで起動すればいい
なお最初に起動するプログラムは自分で作ること
なーに単にファイルが有るだけだ

458:デフォルトの名無しさん
20/08/20 20:48:09.65 KHHtBj+5.net
Dockerのイメージファイルはtarファイルからそのまま作れるって知らないんですかね?
仮想マシンの中のファイルをtarに固めるのなんて簡単でしょう?
それで終りですよ?完成です。
仮想マシンの中のファイルが有れば、それだけで
あなたの要望は実現できているのです。
なにか不満が?w

459:デフォルトの名無しさん
20/08/20 20:51:20.44 qjxJt4Hn.net
tarからイメージつくれるのか
zipや7zipからでもつくれるの?

460:デフォルトの名無しさん
20/08/20 20:55:37 KHHtBj+5.net
zipからtarに変換すればいいだろw

461:デフォルトの名無しさん
20/08/20 20:58:42.72 KHHtBj+5.net
仮想マシンからファイルとってきてtarに変換するやり方は
無駄に容量が大きくて、作り直すのが困難な
不便なイメージが出来上がるだけだがね
もちろん起動するプロセスは指定したものだけだ

462:デフォルトの名無しさん
20/08/20 21:01:40.48 KHHtBj+5.net
仮想マシンイメージはsystemd経由で起動するようになってるが
Dockerではもちろん動かない
仮に動いたとしてもDockerでは不要なサービスが動いてるから
systemdを使うなら、不要なサービスを停止しなければ重いだけ

463:デフォルトの名無しさん
20/08/20 21:03:57.88 KHHtBj+5.net
Dockerのイメージはファイルだけがあるのと一緒
つまりファイルさえインストールすれば作れる
だから最小限のディストリがDocker公式で配布されていて
そこにapt-getなどでインストールするだけで最適化されたイメージが作れるのだ
仮想マシンイメージから変換すると不要な仮想マシン用ドライバなどがあって
Dockerなら数十MBですむところが数GBにもなる
そんなに容量が大きいと、他の人に配るのも大変になるw

464:デフォルトの名無しさん
20/08/20 21:10:20.74 KHHtBj+5.net
「面倒だから簡単な方法がほしい」

と言った時、2つの意味がある
1. 今の作業に無駄があって面倒だから、より簡単な方法に改善したい
2. 勉強するのが面倒だ。だから今の知識のまま改善したつもりになりたい

仮想マシンイメージ変換したいというやつは後者
Dockerを取り入れた気になってる
本当の目的である改善をしたくない
理由は「面倒」だから。真意は「勉強したくないから」

465:デフォルトの名無しさん
20/08/20 21:33:17.68 NnJWbFKj.net
段階を踏んでいくんだよ
まずは自動変換でイメージを作成
イメージを運用環境に取り込んでテスト
不具合がなければとりあえずそれで運用を開始
この段階で開発者が好きに弄くりまわせるクローン環境を安価に入手できたことになる
あとはじっくり解析してサービスを1つ1つ分離するなりなんなりすればいい
時間的余裕をもって優雅に働こう

466:デフォルトの名無しさん
20/08/20 21:40:38.92 NnJWbFKj.net
systemdを使うのも同じこと
systemdが動けば完全にとは言わないが既存のシステムを移行するのは随分と簡単になる
なぜなら既存の構成管理ツールと資産が使えるからね
Dockerのベストプラクティスを破ることになるが現実の仕事には様々な要件があり必ずしもベストプラクティスを踏襲できるわけではない
要件と照らし合わせてやる価値があるならベストプラクティスを破っても構わない
これはDockerだけじゃなくシステム開発全般に通じる常識だよ

467:デフォルトの名無しさん
20/08/20 21:42:36.60 KHHtBj+5.net
>>465-466
それでどんなメリットがあるんですか?w
Dockerを使うことが目的になっていて
どういう問題を解決したのか言えないでしょ(大爆笑)

468:デフォルトの名無しさん
20/08/20 21:43:04.43 ROEHjv41.net
VagrantでPHPのローカル開発環境作る時は
mysqlもPHPもnginxもphpmyadminよmailcatcherも
全部1個のマシンに詰め込む
mailcatcherはruby製なので、rubyが必要
Dockerはそれとは異なる
大多数のイメージは、単一のマスタープロセスが動くように設計されてて
単一の機能だけを持つ
必要に応じて疎結合に組み合わせて動かせる
仮想マシンから変換するツールが無いのはそもそも色々入った
闇鍋的イメージを動かしたいって言う需要が無いから
そもそも仮想マシンおじさんは
mysql, php, nginx等の公式イメージがあることを知らないのでは無いか

469:デフォルトの名無しさん
20/08/20 21:51:57 yUGOTljC.net
>>467
わからないか?
そんなんじゃチコちゃんに怒られるぞ

レガシィシステムを短期間でDocker環境に移行してDockerの開発生産性を享受できるようになったんだよ

470:デフォルトの名無しさん
20/08/20 21:58:36 ROEHjv41.net
supervisordとかを使えば
php, nginx, mysql, phpmyadmin, mailcatcherをすべて詰め込んだコンテナも作れるがそんな物を作るのは変態だけだ
何の意味もない

ふつうは単機能のコンテナを組み合わせてゆるく繋ぐ

471:デフォルトの名無しさん
20/08/20 22:05:54.05 KHHtBj+5.net
>>469
お前がやったのはDocker環境に移行してるんじゃなくて
Dockerを使ってるだけで、Dockerの開発生産性を享受できてないじゃん
お前のやり方でどこでDockerの開発生産性が享受できてるのか言える?
言えないよね

472:デフォルトの名無しさん
20/08/20 22:18:31.92 B4/XHqcX.net
>>468
闇鍋コンテナの需要はあるよ
例えばgitlabだ
あれはまさに闇鍋的なコンテナイメージだが非常に良くできてる
勘違いしてる人が多いけど
コンテナは1つのプロセス
コンテナは1つのサービス
ってのは間違いだ
コンテナは1つの役割
これが正しい
役割を全うするのに複数サービスが必要ならそうすべき
逆にコンテナを分離しても扱いやすくはならない

473:デフォルトの名無しさん
20/08/20 22:21:02.45 B4/XHqcX.net
>>471
チコちゃんこいつです
安価に手に入れたクローンサーバーを開発環境で活用できるだろ
Dockerじゃなければ仮想マシンイメージでやらなきゃならんが重量級すぎて駄目だ

474:デフォルトの名無しさん
20/08/20 22:32:49.15 L9z3LiIU.net
>>470
ところがそうでない場合も存在する
Chefなどといった構成管理ツールが既にある場合だ
そういうものが既にあるなら時間をかけて分離するより闇鍋コンテナのほうがお手軽だし動かし始めるまでがべらぼうに早い
さっさと闇鍋コンテナを作ってしまい開発〜運用環境を生産性の高いDockerベースで構築し直す
あとはゆったりとリファクタリングしてコンテナを分離するなり軽量化すりなりやればいい

475:デフォルトの名無しさん
20/08/20 22:52:03.12 KHHtBj+5.net
>>474
なんのために?w

476:デフォルトの名無しさん
20/08/20 23:06:40.97 UjCnOWKd.net
>>475
わからんのなら、わからんのやろ。
おまえの理想とか理屈とかもうわかったから。

477:デフォルトの名無しさん
20/08/20 23:09:18.57 KHHtBj+5.net
やっぱり説明できませんでしたね

478:デフォルトの名無しさん
20/08/21 00:34:15.17 w5e9p4kz.net
どうせ理会できんやろしな。

479:デフォルトの名無しさん
20/08/21 01:18:43.02 luEuOoGe.net
>>475
段階を踏んで作業したほうが結果的に楽に安全に進められる
これは開発の基本的な心得

480:デフォルトの名無しさん
20/08/21 02:15:02 8bG0TKoL.net
>>479
段階の踏み方がおかしい

仮想マシンの中で、一アプリ、一サービス単位でDocker化すればいいだけ
全アプリいっぺんにDocker化したら危険すぎる

何度もくり返し言うがDockerは仮想マシンと組み合わせて使うもの
段階を踏むとは、仮想マシンの中で一つずつDocker化することをいう

481:デフォルトの名無しさん
20/08/21 07:38:19.11 luEuOoGe.net
>>480
仮想マシンじゃ重すぎ
開発中は何度もサービスを破棄再構築する

482:デフォルトの名無しさん
20/08/21 08:08:49.57 sRcWXcT/.net
コンテナ使っててもコンテナを動かすマシンは必要
Linuxデスクトップ使ってるのでも無ければ1つは最低必要
Win, Macだと直接Docker使えないからLinux仮想マシンの上でDocker動かす

483:デフォルトの名無しさん
20/08/21 09:17:58 luEuOoGe.net
Linux使えよ

484:デフォルトの名無しさん
20/08/21 09:40:29.12 cTh5+k8G.net
>>481
仮想マシンをDockerにするって言ったのはお前だろ?
Dockerを破棄したら開発マシンの中にあるソースコード全部消えるだろ

485:デフォルトの名無しさん
20/08/21 09:44:46.45 cTh5+k8G.net
>>481
> 開発中は何度もサービスを破棄再構築する
何度も破棄構築するにはDockerfileで作るようになってないと駄目
tarから作り直すと、時間がかかる
仮想マシンのサイズ、数GBをDockerサーバーに転送しないといけないから
お前のやり方は破綻してる

486:デフォルトの名無しさん
20/08/21 09:46:46 cTh5+k8G.net
Dockerでなぜ破棄、再構築が速いかと言うと
Dockerfileの1命令ごとにキャッシュされるから
apt-getなど更新がない限り同じ処理は行わない
しかしtarから作る場合、少し変更があっても全て最初っからやり直しになる

487:デフォルトの名無しさん
20/08/21 10:00:37 luEuOoGe.net
>>484
消えねーよ

488:デフォルトの名無しさん
20/08/21 10:01:13 luEuOoGe.net
>>485
イメージを作る方法はDockerfileだけじゃねーぞ

489:デフォルトの名無しさん
20/08/21 10:01:57 luEuOoGe.net
>>486
tarから作らねーよ

490:デフォルトの名無しさん
20/08/21 10:23:04 cTh5+k8G.net
>>489
じゃあどうやって仮想マシンをDockerイメージに変換するつもり?w
もっと時間がかかる方法だったりしてなwww

491:デフォルトの名無しさん
20/08/21 10:28:31 tDzk/wNZ.net
Docker Hub のAlpine は、5MB

Dockerは、層になってるaufs だろ

階層が、1, 2, 3 とかなっていて、3を修正しても、
1, 2は無修正だから、キャッシュを使う

492:デフォルトの名無しさん
20/08/21 10:47:46.35 w5e9p4kz.net
Dockerのキャッシュは面倒のもとになることもあるけどな。

493:デフォルトの名無しさん
20/08/21 11:02:42.93 cTh5+k8G.net
ほーら。実際に使ってないから
何が面倒になるかを書かないわけ
否定したいだけ

494:デフォルトの名無しさん
20/08/21 12:07:31.70 luEuOoGe.net
>>490
変換サービスを使うなり既存の構成管理ツールの資産を活用する
少しはレス読んでから返信したらどうなの

495:デフォルトの名無しさん
20/08/21 12:33:02 uHw4TBN5.net
既存サービスから闇鍋イメージ変換
あるいは既存構成管理ツール資産を使って闇鍋イメージビルド
闇鍋イメージをテストして運用開始
☆メリット:手作業でDockerfileを書くより遥かに早く安価にDocker運用環境に移行可能!
クライアントを待たせない!

開発フロー例:闇鍋イメージからサービスAを分離する場合
1. DockerfileでサービスAイメージ(Aとする)を作成
2. 闇鍋イメージをrun→コンテナの中に入る→サービスA停止→サービスAとの連携に関わる設定ファイルを修正→コミット→プッシュ(闇鍋Aとする)
3. 闇鍋AとAをテスト環境にプルしてテスト
4. テストをクリアするまで闇鍋AとAを修正
5. 運用環境にデプロイ
☆メリット:小さな作業単位に区切って段階的にリリースできるためプロジェクトのリスクが軽減される&闇鍋イメージがレジストリに残ってるのでロールバックも簡単!
開発の基本中の基本”分割して統治せよ”!

496:デフォルトの名無しさん
20/08/21 12:35:23 w5e9p4kz.net
>>493
面倒のことがわからないのなら、そのほうが実際に使っているのか疑わしいレベル。w
世の中は、おまえの理想とは異なる。

497:デフォルトの名無しさん
20/08/21 12:35:54 AwYjNd+Z.net
>>494
> 変換サービスを使うなり既存の構成管理ツールの資産を活用する

↓これよんだ?
> 開発中は何度もサービスを破棄再構築する

Dockerイメージビルドするたびに
そんな面倒なことしてられるかw

498:デフォルトの名無しさん
20/08/21 12:37:41 AwYjNd+Z.net
>>495
それ仮想マシンの中でサービスを一つづつDockerにすればいいだけですよね?(笑)

Dockerは仮想マシンじゃない。
だからDockerは仮想マシンと組み合わせて使うもの!


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

522日前に更新/277 KB
担当:undef