探検


Docker Part2©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/09/28(木) 14:00:45.18ID:/4TtIqGt
LXCを使った軽量仮想環境。
これからの動向が気になるところ。
情報共有しましょう。

http://www.docker.io/

前スレ
Docker
http://mao.2ch.net/test/read.cgi/linux/1374861492/
2018/08/07(火) 09:01:08.27ID:FmqfeUYE
まあ一応VMや自作PRMが何故Dockerに太刀打ち出来ないかと言うと、

まずVMは仮想マシンなんだ。だから既存のマシンに導入することが難しい
既存のマシン上で動いても、仮想マシン故にネットワークに新たなマシンが登場するのと一緒だし、
NATで動かすならDockerに近い形状になるがメモリリソースを無駄に消費するし起動が遅い。
Dockerみたいにコマンド実行の速度で起動できない

自作RPMはDockerと真逆の考え方だな。実行環境を含めて依存しないようにしてるのに
頑張って他のパッケージとの依存関係を解決しないといけない
適切な依存関係になるように自作PRMを作る大変な作業が待ってる。
2018/08/07(火) 09:01:35.38ID:FmqfeUYE
自作PRMは可搬性がないからWindowsで動かせないってのもあるな
2018/08/07(火) 09:03:06.65ID:FmqfeUYE
ようするに、
1. 既存の○○と同じことができる
2. かつ既存の○○の問題を解決できる
これがセットになってるのがDockerなわけで

1.の既存の○○でもあんま変わらんと言われても
既存の○○は2.の問題があるでしょって話
2018/08/07(火) 09:43:33.53ID:svderS3e
ドヤ顔w
2018/08/07(火) 11:13:12.25ID:KYfMTuuE
             ___
            / ノ '' ⌒\  
          / ( ● ) (● )\
ドヤーーーーー / :::::⌒,   ゝ⌒:::::\ ーーーーーーー!!!!
        |      ト==ィ'     |
  _,rーく´\ \,--、  `ー'    /
. ,-く ヽ.\ ヽ Y´ /    ー   ´ノ ` ー-、
 { -! l _」_ノ‐′/\― 、  ,−/_|    ∧
. ヽ ゙ー'´ ヽ  / フ \     /ヽ     /ハ
 `ゝ、  ノ ノ  \   ヽ  / /
     _|\∧∧∧MMMM∧∧∧/|_
     >                  <
. | ヽヽ |   _/_ヽヽ |  ヽ|  |ヽ  ム ヒ | |
. ├─  ̄T ̄/  / /  ̄フ| ̄  | ̄| ̄ 月 ヒ | |
. |.     \  / ノ   / |  / | ノ \ ノ L_い o o
2018/08/07(火) 14:30:15.46ID:kww6lavE
一生懸命に覚えたことをレポートにまとめてるんだよ。
見守ってやろうぜ。
2018/08/07(火) 19:30:53.54ID:/C7ROP+b
なんかワロタ
2018/08/07(火) 20:10:59.70ID:QJmmm+eF
自分で書かなくてもMuninとかあるで。
2018/08/07(火) 20:28:26.91ID:KYfMTuuE
>>322
知ってる。昔会社で使ってた。
だけどあれじゃ俺がやりたいことを満たせないんだよ
機能は高機能だけど、あそこまでいらない
2018/08/07(火) 20:39:58.40ID:QJmmm+eF
Qiitaにでも書いとけ
2018/08/07(火) 20:42:05.65ID:KYfMTuuE
いわゆるインフラ屋はDockerを使って
ディストリによってパッケージが用意されてるようなものを
Dockerイメージ化するという発想になりがちに思える

つまりDocker使わなくても、普通にパッケージ入れたり
VM使えばいいだろという発想

違うんだよね。Dockerは独自に開発したアプリのために使う
独自に開発したアプリは、誰かが依存関係を
解決したりしてくれないからね

だからアプリが動く環境も含めてDockerイメージにする
そうすりゃDockerさえ動いていれば、簡単にどこでも動くものが作れる
2018/08/07(火) 20:42:24.72ID:KYfMTuuE
>>324  
             ___
            / ノ '' ⌒\  
          / ( ● ) (● )\
ドヤーーーーー / :::::⌒,   ゝ⌒:::::\ ーーーーーーー!!!!
        |      ト==ィ'     |
  _,rーく´\ \,--、  `ー'    /
. ,-く ヽ.\ ヽ Y´ /    ー   ´ノ ` ー-、
 { -! l _」_ノ‐′/\― 、  ,−/_|    ∧
. ヽ ゙ー'´ ヽ  / フ \     /ヽ     /ハ
 `ゝ、  ノ ノ  \   ヽ  / /
     _|\∧∧∧MMMM∧∧∧/|_
     >                  <
. | ヽヽ |   _/_ヽヽ |  ヽ|  |ヽ  ム ヒ | |
. ├─  ̄T ̄/  / /  ̄フ| ̄  | ̄| ̄ 月 ヒ | |
. |.     \  / ノ   / |  / | ノ \ ノ L_い o o
2018/08/08(水) 01:40:00.74ID:H2RB231p
VMはカーネルやデバイスノードがゲストに独立して用意されているからサンドボックスとして安心できる
これらをホストゲストで共有してるDockerは、ライフラインを共有しているゲストハウスみたいなもの
カーネルぶんのメモリ(敷金礼金)は浮くがinit以降のメモリ(賃料)は当然払わなければならない
起動も10秒以下の差
つまりデスクトップならVM常道
2018/08/08(水) 03:48:30.48ID:tyC3gFls
あぁ、またこれな

> 1. 既存の○○と同じことができる
> 2. かつ既存の○○の問題を解決できる
> これがセットになってるのがDockerなわけで

VMでもDockerでもサンドボックスとして安心できる
その上で、VMよりも軽いのがメリットなわけで
2018/08/08(水) 04:00:13.46ID:tyC3gFls
起動も10秒以下の差とかそれで勝負になると思ってるのか?

Dockerは1秒以下
$ time docker run -it alpine echo ok
ok

real 0m0.924s
user 0m0.046s
sys 0m0.031s


メモリ使用量はこんなもん
$ docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d68483bb9e21 vibrant_raman 0.00% 868KiB / 30.38GiB 0.00% 5.89kB / 0B 0B / 0B 1

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d68483bb9e21 alpine "sleep 1000" About a minute ago Up About a minute vibrant_raman


ディスク使用量も少ない
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 11cd0b38bc3c 4 weeks ago 4.41MB


マシンリソースを無駄にすること無く、サンドボックスを動かせる
2018/08/08(水) 04:18:39.40ID:tyC3gFls
> CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
> d68483bb9e21 vibrant_raman 0.00% 868KiB / 30.38GiB 0.00% 5.89kB / 0B 0B / 0B 1

ちなみにこれ、メモリリミットが30.38GiBとなってる
GPUメモリに1GB使ってて、つまり32GBのメモリを搭載したマシンなんだ

なんで(個人PCなのに)こんなにあるのかと言うと、
6年ぐらい前にOpenStack使ってプライベートクラウドを作るために
たくさんの仮想マシンを起動できるようにとMAXまで積んだんだ
(ちなみにDockerの登場は5年前の2013年)

仮想マシンだと、最低でも1台で数GBは欲しいでしょ?
VM1台で平均2〜4GB割り当てるとして、約10台分。
プライベートといってもクラウドならこれぐらいほしいよね。

でもDockerが登場してプライベートクラウドの熱も冷めた
(本物のクラウドを使うようにしたのでもはやプライベートで作る気はない)
DockerならVM単位での起動じゃなくて、アプリ単位での起動になるので、
メモリは実際に使用した分しか使わず必要なメモリ量もぐんと減った
用途に対してかなりオーバースペックなPCになってしまったよw
2018/08/08(水) 04:26:57.73ID:tyC3gFls
> カーネルぶんのメモリ(敷金礼金)は浮くがinit以降のメモリ(賃料)は当然払わなければならない
あ、ちなみにこれ間違い

仮想メモリ間でのメモリ共有は一部のVMに搭載されているが(セキュリティのためにデフォルトは無効のようだね)
https://docs.vmware.com/jp/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-F9111E35-E197-46EC-8350-77827A5A2DEC.html#GUID-F9111E35-E197-46EC-8350-77827A5A2DEC
基本的に仮想メモリ間でメモリは共有されないし、
当然空きメモリも共有されない

2GBのメモリを割り当てたVMは、その中でどんなに小さいプログラムを
実行しようがメモリは2GB使用する

VM(カーネルメモリ + プロセスメモリ + 空きメモリ) VS Docker(プロセスメモリ)

という比較になる。

Dockerだってカーネルメモリ使用するじゃん、なんで右側に書いてないのか?と
思うかもしれないが、ホストのカーネルを共有してるんだからこれで良い。
VMだって同じようにホストのカーネルメモリ書いてないだろ?
2018/08/08(水) 04:28:44.09ID:tyC3gFls
             ___
            / ノ '' ⌒\  
          / ( ● ) (● )\
ドヤーーーーー / :::::⌒,   ゝ⌒:::::\ ーーーーーーー!!!!
        |      ト==ィ'     |
  _,rーく´\ \,--、  `ー'    /
. ,-く ヽ.\ ヽ Y´ /    ー   ´ノ ` ー-、
 { -! l _」_ノ‐′/\― 、  ,−/_|    ∧
. ヽ ゙ー'´ ヽ  / フ \     /ヽ     /ハ
 `ゝ、  ノ ノ  \   ヽ  / /
     _|\∧∧∧MMMM∧∧∧/|_
     >                  <
. | ヽヽ |   _/_ヽヽ |  ヽ|  |ヽ  ム ヒ | |
. ├─  ̄T ̄/  / /  ̄フ| ̄  | ̄| ̄ 月 ヒ | |
. |.     \  / ノ   / |  / | ノ \ ノ L_い o o
2018/08/08(水) 04:40:02.13ID:tyC3gFls
ま、そもそもVMとDockerは違うもので、両方を組み合わせて使うものなんだけどね

クラウドを使っていればわかるはず。
VMを増やすと金はかかるが、新しいスペックのマシンを
手に入れることで、クラスタの合計性能が増える

Dockerコンテナを増やすだけじゃ、クラスタの合計性能は増えない
Dockerコンテナは一つの(仮想)マシンの中でCPUやメモリを
無駄にすることなく(サンドボックス化された)プロセスを複数起動したり
アプリのデプロイを用意(手元で動いたイメージをそのまま使うとか)にするために使う

目的が違うものなんで、Dockerの代わりにVMを使うとか
VMの代わりにDockerを使うとかいう発想がそもそもズレてる
334327
垢版 |
2018/08/08(水) 05:36:35.37ID:H2RB231p
>目的が違うものなんで、Dockerの代わりにVMを使うとか
>VMの代わりにDockerを使うとかいう発想がそもそもズレてる

そこだけは同意だな
そこまで理解できたなら賢いじゃないか
2018/08/08(水) 07:17:02.14ID:25daI1mK
序論、本論、結論まで到達?
2018/08/08(水) 10:38:16.92ID:tyC3gFls
>>334
何年も前から理解してるぞw

VMとコンテナをごっちゃにするなって書いたのは、違うスレだったか?

例えば>>76とか書いたの俺だが

> なぜならkubernetesの場合コンテナのオートスケールになるわけだけど
> 起動しているVMの中でコンテナをオートスケールするだけなので
> VMの数もオートスケールしないとコストは下げられないから

VMとコンテナは使い方が明確に違う(ことを理解してなきゃこんなこと書けない)
2018/08/08(水) 10:57:28.63ID:tyC3gFls
物理マシンもVM(仮想マシン)も、俺にとっては同じマシン扱いなんだわ
形あるハードウェアで形作られてるかそうでないかの違い。

そのマシンにアプリをデプロイする時にDockerを使えば、
そのアプリは同じマシンの他の環境の影響を受けないので
簡単にデプロイできる。

Dockerのメリットはアプリの配布と実行環境なんだよ
「アプリ+実行環境」でコンテナ化されるから、
LinuxやMacやWindowsに持っていっても動く。


簡単にまとめるなら、
 マシン(物理 or 仮想)の中 に
 アプリ(パッケージ or Dockerイメージ)をインストール

ってこと。

アプリをサンドボックス化するためにマシンを作るとか重すぎでしょw
まさに牛刀割鶏、鶏をさばくのに大きな牛刀を使うようなもの
2018/08/08(水) 11:01:18.07ID:tyC3gFls
それから「デスクトップ環境」の話
これはアプリか?って問われれば、アプリだと思う人はいないよね
複数のアプリを連携して作られた環境

仮にデスクトップ環境を作るならば、Dockerコンテナはアプリに相当するのだから、
複数のDockerコンテナを連携させるという話になる。
デスクトップ環境を構成する複数のアプリを一つ一つDockerコンテナ化していって
連携させるとか、大変なだけの環境の再発明でしか無い

ここからもわかるように、デスクトップ環境(=複数のアプリ+連携)なので
Dockerコンテナ(=アプリ)と比べるものでないのは言うまでもない話。

デスクトップ環境は誰かが大変な思いをして構成したものを使っていればいい。

物理マシン or 仮想マシン で動いてるデスクトップ環境やらCLIやらsystemdやら。
そこから起動する一つのアプリ、それがDockerコンテナ相当なんだよ
2018/08/08(水) 17:56:23.41ID:8+YiPWG6
GitLab運用してるんだが, CIで使うビルド環境とかは明らかにDockerないしはKubernetesが優秀
一時Docker-Compose on VMでやってたけど使い捨てVMを構築する処理が重くてしょうがなかった(しかも遅い)
スタンバイ状態のビルド環境VMを2つも作るともう限界だが, Kubernetesなら5個くらいPodをスタンバイさせてても余裕だし新規Pod作成も早い(Docker単体なら10コンテナ並走でもいける)
2018/08/08(水) 18:46:47.42ID:Gp7Qfh6x
夏休みだな
お前らが当たり前過ぎて書かないこともこうやって書いてあれば誰かの役に立つのだろう
2018/08/08(水) 23:00:30.67ID:tyC3gFls
>>339
Kubernetesって使用メモリ多くない?1GBぐらい使ってた気がするんだが
だから使わないってわけじゃなく、もうデファクトスタンダードに
なりつつあるから避けようがないと思ってるけど

Docker-Composeは開発者用だと思ってるよ。
ローカルマシンで複数コンテナを組み合わせる時の面倒さを解決するもの

>>340
お前のその書き込みは誰の役にも立たんけどなw
2018/08/08(水) 23:10:50.30ID:9RbiD8jy
ケンカはやめて(><)
2018/08/09(木) 06:19:00.25ID:/JzHzLjB
Docker-composeで使い捨てVMを構築するのが遅いというところがよくわからない。VM(dockerホスト)は一回構築したら終わりで、後はそこにコンテナを作ったり消したりするだけじゃないの?
2018/08/09(木) 13:04:39.32ID:xAQpubuL
>>343
今までの話の流れからすると、CIでテスト実行するたびにVMの作成と破棄をしていたってことでしょ?
>>327がVMでも10秒以下の差しか無いから問題ないみたいなことを言ってるから
(VMの中でDocker-Composeが動いてるのは、この話にあまり関係ない)


当たり前だけどDockerコンテナの起動に比べればVMの起動は遅い
起動の差を10秒以下にするには、VMのイメージを作ってないと不可能
あとできればSSDとかクラウド使うとか。それでもDockerの1秒に比べたら遅い


そして肝心のVMのイメージを作成するのに時間がかかるっていうねw
Dockerの場合はアプリの実行環境が含まれる。だから構築に時間がかかるVMは
色んな種類のアプリのテストに使い回すことができる。

Dockerを使わないなら、アプリを動かすためにVMのイメージに
実行環境を含めないといけない。当然アプリごとにVMのイメージが必要になる。

DockerでもアプリごとにDockerイメージが必要になるのは同じだが
Dockerはキャッシュがあるから、Dockerイメージの作成は短時間でできる。
VMだとキャッシュはないし起動に10秒かかるし、作成したイメージの
サイズもでかいし頻繁にVMイメージの作成なんかやってられないよ
2018/08/09(木) 16:12:56.70ID:+YyDvSZH
今までVPSとかで動かしていたものをコンテナ化してGCE辺りに移そうと思うんだけど
DBの保存や出力したファイルの保存はみんなどうやってるの?
結局マウントできるディスクが必要なんじゃないかってところで今頭を抱えてる
2018/08/09(木) 17:43:56.11ID:UwrKl0TS
>>345
まずアプリサーバーとデータサーバーを分けて考える。
Dockerでやる価値が高いのはアプリ

アプリサーバーには原則としてデータは保存しない
その前提を守っているならば、簡単にスケールできる
(VMインスタンスやDockerコンテナを追加することで性能をあげられる)

という話。


その場合にデータはどうするかと言うと、
データサーバーはアプリサーバーみたいに簡単に
台数を増やしたりできない

一番楽なのは、難しいそれらをクラウドが提供するサービスに置き換えてしまうこと。
つまりGCPであればCloud SQLやCloud Storageを使う
これらは信頼性も性能も(金額次第だが)高くできる。
2018/08/09(木) 17:47:52.88ID:UwrKl0TS
>>345
どうしても自力でやりたいならば、Dockerのボリュームという
機能を通してホスト上に保存するのが一番手っ取り早い

例えばMySQLであれば データディレクトリである
/var/lib/mysql をホスト上のディレクトリにボリュームで
マッピングさせる

MySQL ぐらいだったらシンプルだし事例も多いので簡単なんだが
何処に何を保存するのかよくわからんようなアプリは
それを把握することに時間を奪われるだろう
2018/08/09(木) 17:55:09.12ID:UwrKl0TS
>>345
> 結局マウントできるディスクが必要なんじゃないかってところで今頭を抱えてる

結局マウントできるディスクが〜というのは
初心者がよく考えてしまうことなんだけど、
これは当たり前

なぜなら(物理マシン or 仮想マシン上で動く)Dockerコンテナっていうのは
(物理マシン or 仮想マシン上で動く)アプリと同質のものだから。
単にアプリの実行環境が、コンテナとしてアプリに一体化してるに過ぎない


アプリはデータを何処に保存する?
物理マシン or 仮想マシン上のディスクでしょう?
だからDockerコンテナもそれは同じことなんだよ

Dockerコンテナを使った時データの保存先をどうすれば良いのか悩むのは
Dockerコンテナがアプリと同質のものであることを理解してない証拠
2018/08/13(月) 18:09:32.79ID:v0wq29mQ
最近コンテナってものを知ったんだけど、上の説明だとフラットパックってのとの違いがわからない
スタンダロンなアプリじゃなく、ソフトウェア群の、何かしらのフロントエンドにドッカーが向いてるってこと?
2018/08/13(月) 21:26:12.80ID:nXCS+eUE
コンテナ自体が非常に難しい概念なんだよ
どうもLinuxの世界で発祥したもので、昔からLinuxやってる人でないとわからないらしい
「最近流行りのDockerなるものをやってみたい」というヤツには到底無理(俺含め)
2018/08/13(月) 21:45:54.13ID:xnhwDoUS
Solarisのゾーンがコンテナの先駆けじゃない?
2018/08/13(月) 23:10:29.77ID:XRxrVOUh
FreeBSDのjailとか?
cgroupの概念は含まれてないけどね
2018/08/14(火) 00:05:12.50ID:kAynbxnX
>>350
説明してる奴が「難しいこと理解した俺スゲー」ってのを
自慢げに小難しく語るのが問題なだけ

プロセス分離のためにcloneを拡張して名前空間を追加したよ
cloneだけだと不便だからunshareとsetns追加したよ
cgroupでVMのごとくリソース分配可能にしたよ
コイツラ直接イジるのは面倒だからコンテナエンジン作ったよ

基本この4ステップだけじゃねぇの?





…って言う俺もコンテナのこと全然知らんのだが
2018/08/14(火) 00:55:59.54ID:M/lw6/kx
>>350
技術を理解するのと目的を理解するのをごっちゃにしてるから

Dockerが解決する問題は(主に自分が作った)アプリをいろんな環境で
動かそうとしたら、アプリをぽんとインストールするだけじゃ動かなくて、
そのアプリが依存してるなにかまで環境を整えなきゃならないだろ?
だから発想の転換でアプリ自体に環境を入れてしまえばいいじゃないかってこと。
外部ライブラリを全部アプリに静的リンクするの発展形だよ
まずそこを理解しないといけない


技術だけ理解すると、やれjailがなんだとかcgroupがなんだとか、
そればっかり言って、なんのために作られたのかという目的を見失う。
その結果、同じ技術を使った応用例のVMの代わりにするのが目的だと勘違いする

コンテナという技術を知るのではなくて、どんな問題があって
それを解決するものがDockerなんだって理解するのが先
2018/08/14(火) 01:03:03.69ID:M/lw6/kx
補足だが、
> (主に自分が作った)アプリをいろんな環境で

なんで「自分が作った」と書いているのかというと
他人が作って、ディストロに収録されているものは、
それ動かすための、環境もすでに整えてあるから
それがディストロの大変な仕事なわけで。

だから自分が作ってないものを動かしてるだけの人は
(物理マシン or 仮想マシンの上に)ディスロの環境整えられてる
パッケージ入れて使っても同じじゃんって思ってしまう。
技術は理解していても、そもそもの問題を理解していから
Dockerが必要な理由もわからない
2018/08/14(火) 01:10:25.09ID:M/lw6/kx
>>349
フラットパックってのがよくわからない。
一般的な用語?ググっても見つからないんだが。

> スタンダロンなアプリじゃなく、ソフトウェア群の、何かしらのフロントエンドにドッカーが向いてるってこと?

既存のいろんなものをつく合わせて
スタンドアロンなアプリを作りましょうって話。

何かをやるためにDockerを使うと便利なんじゃなくて、
Dockerは「とある物」を作るための道具だよ

その「とある物」っていうのがスタンドアロンなアプリ
動かしたいアプリが、動かすのにアプリ以外の環境を整えることが
必要なアプリであっても、Dockerを使えばアプリに組み込んで
スタンドアロンなアプリに作り変えることができる

Dockerはスタンドアロンなアプリを「作るもの」
であって「動かす環境」ではないんだよ
そこを根本的に間違ってる人がいる。
2018/08/14(火) 02:08:41.28ID:kAynbxnX
>>356
https://flatpak.org/
2018/08/14(火) 02:29:21.54ID:Ttl7PXT/
カタカナでググったから見つからなかったのかw

Linuxデスクトップ向けアプリケーション仮想化機構「flatpak 0.6.13」リリース
https://mag.osdn.jp/16/10/26/153000

>  Linux向けのアプリケーション仮想化技術「flatpak」開発チームは10月25日、
> 最新版「flatpak 0.6.13」を公開した。プロジェクトのWebサイトより入手できる。ライセンスはLGPL。
>
>  flatpak(旧名称「xdg-app」)は、Cで実装されたLinuxデスクトップアプリケーション向けの
> 仮想化機構。アプリケーションをOS環境とは切り離されたサンドボックス環境内で
> 実行することでセキュリティを高め、またほかのアプリケーションからの干渉を最小限にできる。
> サンドボックス環境の構築にはcgroupsやseccomp、ネームスペース、バインドマウントなどの
> Linuxカーネル技術やOpen Coutainer InitiativeのOCIフォーマットなどを利用しており、
> 単一のアプリケーションパッケージをさまざまなLinuxディストリビューションで動作させることができるという。

Dockerのアイデアをパクってデスクトップアプリ用にした技術だね
技術的にはかなり近いものを使ってるし、OCIフォーマットは
Docker社 vs CoreOS社の標準化争いで生まれたものだし
違いがわからないというのなら、その言うべき相手は
後から登場したflatpakに言うべき言葉だろう
なんでflatpak作ったの?Dockerでいいじゃない?と。
2018/08/14(火) 03:11:38.19ID:Ttl7PXT/
> なんでflatpak作ったの?Dockerでいいじゃない?と。
この質問に自己レスする前に

第513回 新しいパッケージの仕組み,Flatpakを使用する
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0513
> FlatpakとSnapsの最大の違いは,Flatpakはアプリケーション専用で
> あることでしょう。よって,GUIアプリケーションであれば
> Flatpakのほうが快適に使用できるものが多いのですが,実際はケースバイケースです。
本当にGUIアプリ専用だったのか?


Flatpak・Snaps も Docker も「使う側」の視点と「作る側」の視点がある

Flatpak・Snapsはどちらかといえば「使う側」が焦点となっており
こんなパッケージを用意しましたから使ってくださいって感じだろう。
エンドユーザーがデスクトップPCで使うアプリ用

Dockerはどちらかといえば「作る側」がメインなのでアプリのインストールや実行はCLI、
そしてGUIアプリは作れなくはないがメインのターゲットではない。
主に開発用のツールや自社開発のウェブサービスを構築のためによく使われている

Dockerは「作る側」がメインなので何度も言ってるように、アプリエンジニアにこそ必要なもの。
だからパッケージ入れて(ちょっと設定して)使うだけのインフラエンジニアはVMの役割とごっちゃにしやすい

自分専用にカスタマイズしたアプリを作りたい人はDockerを選ぶのでは?
Flatpakでパッケージの作り方を調べてみたが、
Dockerfile書くだけで作れるDockerよりも大変そうに思える

なんでflatpak作ったの?の答えは、エンドユーザーのために作ったパッケージを、
もっと使いやすく提供したいためだろう。
2018/08/14(火) 10:08:37.26ID:M6PcTN6D
別にコンテナの用途限定する必要は無いと思うけどなぁ。便利に使えたらそれでいいし。Dockerを○○に使うなって言うならその代替案も言って欲しいけど言わないし、仮に言えたとしてもそれはDockerで実現した方が簡単というオチになるのが目に見えてるし。
正しさとは都合。正しさを振りかざすのは自己満足を他人に押しつける行為。
2018/08/14(火) 11:51:58.01ID:kAynbxnX
ドッカーのスレだから、ドッカー万歳な人がいてもおかしくないよ
2018/08/14(火) 14:07:10.96ID:ghMKDHT1
>>368
> 別にコンテナの用途限定する必要は無いと思うけどなぁ。

制限なんかしてないよ?

コンテナの用途は、アプリケーションコンテナや
システムコンテナといった使い方がある。

だがここはDockerのスレなんだからDockerの話をするべきで、
Dockerはアプリケーションコンテナとして設計されてるのは事実

だからコンテナを違う用途で使いたいなら、
別のスレに行くのが適切ってだけの話
2018/08/14(火) 14:12:08.48ID:ghMKDHT1
> Dockerを○○に使うなって言うならその代替案も言って欲しいけど言わないし

何に使いたいのか言わないから言いようがない

どうせシステムコンテナなんだろうが、
システムコンテナとして使いたいなら
LXD や OpenVZ を使えばいいだろ?
2018/08/14(火) 14:21:37.56ID:ghMKDHT1
ほらよ。スレ立ててやったから
コンテナを仮想マシン代わりとして使いたいならそっちに移動しろ

LXD コンテナを仮想マシンとして使う (Not Docker)
https://mao.5ch.net/test/read.cgi/linux/1534223977/
2018/08/14(火) 14:30:00.78ID:ghMKDHT1
>>362>>360宛て
2018/08/14(火) 14:37:27.72ID:M6PcTN6D
LXDやOpenVZなんて知らんし、もしスレたてるとすれば仮想マシンとしてDockerを使うスレにするべきでしょ?
なんでそんなにDockerを仮想マシンとして使わないように誘導するの?おかしくない?
2018/08/14(火) 14:42:46.76ID:M6PcTN6D
Googleクラウドは仮想化なんか使ってなくて、物理サーバにコンテナ立ち上げてるらしいけど、あなたはGoogleがコンテナ使い方間違ってるからGoogleのインスタンス使うなって言うわけ?
2018/08/14(火) 14:48:15.40ID:M6PcTN6D
Dockerの使い方を縛らないと言いつつサーバ用途には使わせないように誘導するのすごく卑怯だよね。
声がでかくて社内政治だけがうまい奴に似てて、あなたに物凄い嫌悪感を持ったよ。
2018/08/14(火) 15:04:52.25ID:kAynbxnX
https://stackoverflow.com/questions/17989306/what-does-docker-add-to-lxc-tools-the-userspace-lxc-tools

> Versioning. Docker includes git-like capabilities for tracking successive versions of a container, inspecting the diff between versions, committing new versions, rolling back etc.
> The history also includes how a container was assembled and by whom, so you get full traceability from the production server all the way back to the upstream developer.
> Docker also implements incremental uploads and downloads, similar to "git pull", so new versions of a container can be transferred by only sending diffs.

サンドボックスとしてDockerを使うメリットってこれかな?
コンテナ知らん俺でも強力だとわかる
2018/08/14(火) 15:14:48.58ID:kAynbxnX
お前ら暑いからってイライラするなよな…

git likeを謳ってるからDocker hubなんかもあるのな
flatpakのflathubよりは随分開発寄りな印象を受ける…サインインしてないけど

ご興味のある方はどーぞ
https://hub.docker.com/
https://flathub.org/
2018/08/14(火) 18:38:55.14ID:xLHQglRN
>>366
> LXDやOpenVZなんて知らんし、

無知を告白されても、勉強したら?で終わる話なんだが
知らないほうが悪いんですよ
2018/08/14(火) 18:41:22.43ID:xLHQglRN
>>366
> なんでそんなにDockerを仮想マシンとして使わないように誘導するの?おかしくない?

なんで仮想マシンの代わりとしてコンテナ技術を使うものがあるのに
仮想マシンの代わりとして使うことを想定してないDockerを無理やり使うわけ?
その方がおかしいでしょ。
どうせ間違った使い方をして、使いづらいと文句をいうのが目的なんだろう?
2018/08/14(火) 18:49:48.39ID:xLHQglRN
>>367
> Googleクラウドは仮想化なんか使ってなくて、物理サーバにコンテナ立ち上げてるらしいけど、あなたはGoogleがコンテナ使い方間違ってるからGoogleのインスタンス使うなって言うわけ?

お前用語の使い方めちゃくちゃ。

> Googleクラウドは仮想化なんか使ってなくて
Googleクラウドが何を指しているのか知らないが、
GCPのことであれば、仮想マシンを使ってる。

仮想化というが、ハードウェアを仮想化(=ハードウェアエミュレータ)したのか
アプリケーションの実行環境を仮想化(=ハードウェアのエミュレートはしてない)
したのかはっきりしない

> 物理サーバにコンテナ立ち上げてるらしいけど
物理サーバにコンテナを立ち上げるのは間違った使い方ではない
物理サーバーに直接アプリケーションコンテナを立ち上げてもいいし、
物理サーバーにシステムコンテナを立ち上げても良い

間違った使い方と言ってるのは、Dockerをシステムコンテナとして使うこと
Googleがアプリケーションコンテナをシステムコンテナとして使っているなんて
どこを見ても書いてない。

参考 すでにGoogleは全部のソフトウェアをコンテナに乗せており、毎週20億個ものコンテナを起動している
https://www.publickey1.jp/blog/14/google20.html


> Googleのインスタンス使うなって言うわけ?
やっぱりその言い方をしてる所からすると
GoogleのクラウドとはGCPの事を言っているようだが、
GCPは仮想マシンを使っている
2018/08/14(火) 18:53:45.18ID:xLHQglRN
>>368
> Dockerの使い方を縛らないと言いつつサーバ用途には使わせないように誘導するのすごく卑怯だよね。

あのさぁ、Dockerとコンテナは別物なんですよー?知ってますかー?小学生ですかー?

コンテナの使い方は色々あるが、
Dockerはアプリケーションコンテナを作るためのものなんだから
システムコンテナとして使うなよ。

コンテナの使い方は縛ってないが、Dockerの使い方は縛ってる
縛ってると言うか、Dockerはアプリケーションコンテナを作るために
作られたんだよ。

何度も言うが、コンテナの使い方は縛ってない。
2018/08/14(火) 18:59:38.16ID:xLHQglRN
>>370
> git likeを謳ってるからDocker hubなんかもあるのな
> flatpakのflathubよりは随分開発寄りな印象を受ける…サインインしてないけど

だからDockerはアプリケーション開発者のためのものなんだよ

Docker hubに置いてるものは、公式のものはそれを利用して
独自のコンテナを作るため、アプリを開発するためな

それ以外の多くは自分や自社専用に開発したアプリ
(公開可能なもの)を置いているのが大半

そしてそのまま使えるアプリが置いてあったりするのは極稀


参考までに言っておくと非公開のDockerイメージを起きたい時は
プライベートリポジトリを使う。
GCPやAWSはDockerのプライベートリポジトリを提供している
2018/08/14(火) 19:28:34.72ID:kAynbxnX
>>375
ご説明どうも
LXC/LXDと違って配布とバージョニングが肝要なのね
2018/08/14(火) 20:07:26.17ID:Rn+J0ap2
>>377
シラネーヨバーカ。
お前が自分の正しさ振りかざして好き勝手なこと言ってるのがムカつくって言ってるんだよ。
絶対にお前と一緒の現場で働きたくないし、お前が上司だったら人事に文句言いまくって転職するわ。
2018/08/14(火) 20:10:09.80ID:J8E8MYcP
この怒涛の連レスと変な引用がWebやプログラム板の荒らしそっくりだ
2018/08/14(火) 20:35:54.31ID:xLHQglRN
> 377 名前:login:Penguin[sage] 投稿日:2018/08/14(火) 20:07:26.17 ID:Rn+J0ap2
> >>377
> シラネーヨバーカ。

俺も同意見である
2018/08/15(水) 01:16:08.69ID:ugls1Kd9
Dockerを使うと次のようなことできる?

複数の各Dockerが独立してLANインターフェイスに専用のプライベートIPアドレスを持って、
ホストのルーティング設定とLANインターフェイスを利用してネット側と通信する。

<Docker>
□ □ □
| | |
==========⇒ホストのルーティングを使ってネットへ
381login:Penguin
垢版 |
2018/08/15(水) 01:17:35.73ID:ugls1Kd9
>>380
自己レス

Dockerコンテナの間違いでした。
2018/08/15(水) 13:20:10.69ID:uskt4Uvb
>>380
新しいネットワークを作成して使えるよ。これじゃだめ?
各コンテナ間のネットワークの独立性は実現できると思うけど

docker network create net1
docker network create net2

docker run -it --net=net1 debian /bin/bash
docker run -it --net=net2 debian /bin/bash
2018/08/16(木) 00:43:29.60ID:kHU6PfSr
>>382
レスありがとうございます。
参考にしたいと思います。

分からないので、ちょっと書籍を読んでいきます。
2018/08/17(金) 19:01:16.67ID:LyzN7uI2
dockerとちょっとしたサーバーあれば大規模ネットワーク作れそうだね
2018/08/17(金) 20:33:23.06ID:x+SQYw9w
大規模ネットワークを作るならkubernetesとか使うべきだよ
2018/08/18(土) 00:44:21.73ID:bBPq1AA+
>>384
大規模ネットワークは単にその手段ではないのか
2018/08/18(土) 08:03:42.49ID:o1onkvNG
>>386
レガシーの為にサマータイムを導入し、打ち水を都公認の暑さ対策として導入すべく水まいて地表の温度低下を計測するも湿度や不快指数は見ないこの国で手段とか目的とか言い出すのはナンセンスですよ
2018/08/18(土) 10:11:41.60ID:B/BAtWOD
国なんかに考え方決められちゃう人って・・・
2018/08/18(土) 11:00:32.73ID:S06djVVH
dockerで大規模ネットワークっていったら
もう考え方から変わってサーバーという概念がなくなる。

複数のサーバーで構成された一つの巨大なOS(クラスタ)があって
そこでdockerコンテナというアプリがあちことのどこかで
起動したり消えたりするイメージになる

それを実現するのがKubernetes


ただ、理屈はそうなんだが現実として
そこまでのスペックは求められていないwww
2018/08/18(土) 13:41:20.07ID:B/BAtWOD
やっぱこのくらいの規模じゃないとあんま意味ないよな
https://kubernetes.io/blog/2017/02/inside-jd-com-shift-to-kubernetes-from-openstack/
2018/08/18(土) 14:41:29.39ID:S06djVVH
念の為に行っておくと、意味がないのはKubernetesね
Dockerはクラスタにすばやくアプリをデプロイするのに使われるが
Dockerそのものはアプリケーションの仮想化による
可搬性の高さがうりなので違うOSで動かしたりとか
同OSの他のシステムの影響を最小限にできるとかいうメリットが有る
2018/08/18(土) 15:46:56.84ID:bBPq1AA+
>>391
可搬性の高さのことをすっかり忘れていた。
ネットワーク単位を分けられることのメリットが自分にはおおきくて。
2018/08/20(月) 12:44:26.66ID:KhDqHNJn
コンテナの台頭で仮想マシンの未来に暗雲--Diamanti調査
https://japan.zdnet.com/article/35123584/

> 最も広く採用されているコンテナ技術が「Docker」(52%)と「Kubernetes」(30%)と
>なっているのは驚くに値しない。回答者の71%は仮想マシン上でコンテナを配備しているため、
>仮想マシンが姿を消すということはないだろう。仮想マシンの存在価値はあるはずだ。
>しかし、ITリーダーらは仮想マシンのライセンスコストを抑えたいと考えている。

> 興味深いことに、コンテナに向かうこの動きは企業幹部らによって推進されているわけではない。
>同調査によると、コンテナの採用を主に推進しているのは、プラットフォームの設計者(22%)と、
>開発者(22%)だという。これらの後にはIT運用チーム(17%)と、統合DevOpsチーム(17%)が
>続いており、企業幹部はたったの9%となっている。

> コンテナは主に、クラウドネイティブなアプリケーションで使用されている(54%)。
>その後に、ステートレスな軽量アプリケーション(39%)、クラウドへの移行(32%)、
>レガシーアプリケーションの近代化(31%)が続いている。

> また、本番環境でコンテナを稼働させている回答者が考えている「最大の課題」として、
>インフラがトップに挙げられており(30%)、その後にはセキュリティ(22%)、
>配備(22%)、パフォーマンス(19%)、永続的ストレージ(12%)が続いている。
2018/08/22(水) 08:59:48.33ID:j+z99P2p
>>393
>企業は仮想マシンのライセンス料金に大きな不満を抱いているという知見を得ている。
>VMwareは自社の利益を追求するうえで、同社の社名に冠された仮想マシン(VM)に依存しなくなっている。
>VMwareがこれまで軸足を置いていた市場が、競合他社のハイパーバイザの台頭によって侵食されたのは事実だが、コンテナの登場によってさらに大きな影響がもたらされている。
>回答者の71%は仮想マシン上でコンテナを配備しているため、仮想マシンが姿を消すということはないだろう。仮想マシンの存在価値はあるはずだ。しかし、ITリーダーらは仮想マシンのライセンスコストを抑えたいと考えている。

この記事のベクトルがはっきりしない。
なにがいいたいのか?
2018/08/22(水) 13:19:31.20ID:pivahsct
頭の悪さが滲み出てくる記事だよな。
2018/08/22(水) 13:36:22.02ID:SRjEX/kw
自分の頭が悪いだけだろw
2018/08/22(水) 15:20:11.01ID:sHVRQKWS
18.06.1 が来てた
398login:Penguin
垢版 |
2018/08/23(木) 17:03:41.25ID:ZGFS8Yk4
試しに、公式のubuntuでコンテナを動かしてみたんだけど、

docker run -it ubuntu bash

プロンプトに、ping , ip a , ifconfig というような基本的なコマンドすら実行できない。
ネットワークの状況も確認できない。
これは、どう使うことが想定されているんでしょうか。

centosのイメージでも、pingコマンドはあったけど、ip a がないので、
ネットワークの調査ができない。

DockerコンテナからIPIPトンネルを構築したいと考えていたんですが、
とりあえずラズパイ並みにつかえるようにするにはどうすればいいでしょうか。
2018/08/23(木) 17:48:33.28ID:q1z8N/B0
>>398
だからさ、Dockerは仮想マシンじゃないって
その中に入って色々作業するものじゃないんだよ

Dockerはアプリケーションコンテナなんだから、
そんなコマンドは必要な場合に入れれば良いんだよ
(必要になることは殆ど無い)
2018/08/23(木) 17:49:50.48ID:q1z8N/B0
いつになるかわからんが次スレまで行ったら
テンプレにしっかり書いてなきゃいかんな
2018/08/23(木) 17:55:02.79ID:7FvXZ15y
>>398
そいつのDockerfileな
https://github.com/tianon/docker-brew-ubuntu-core/blob/59aa7dfef17153ecc812adbf26516675ce67e8aa/bionic/Dockerfile

他のコンテナ作るときのベースだから本当にミニマムやで
2018/08/23(木) 18:41:12.97ID:ZGFS8Yk4
>>399
>>401
レスありがとうございます。
Dockerfileを見てみると、

ADD ubuntu-bionic-core-cloudimg-amd64-root.tar.gz /

だけがコンテンツみたいに思えます。
一応、ubuntuって書いてありますね。

イメージに、centosとか、ubuntuとか、ありますが、
centos7などとはまったくの別物なんですね。


せめてラズパイみたいに使えるイメージがあればいいんですけど。
実験でホストを汚したくないので。

apt-getとか、yumがつかえるようなやつ。
Docker Hubでなにかオススメあるでしょうか。

環境ができたら、今度はそれを自分用としてイメージ化したい。
2018/08/23(木) 18:43:04.38ID:q1z8N/B0
>>402
> せめてラズパイみたいに使えるイメージがあればいいんですけど。
だからそういう使い方をするものじゃないから
希望するのが見つからいように思えるんだって
2018/08/23(木) 18:52:04.65ID:7FvXZ15y
>>402
Hyper-VでもKVMでもVirtualBoxでも好きなのを選べばいいぞ
2018/08/23(木) 18:52:37.87ID:AO6wJAqi
みた感じ、仮想マシン派もDocker派も両方ディスる猛者現るって感じだな
2018/08/23(木) 18:55:26.07ID:q1z8N/B0
> せめてラズパイみたいに使えるイメージがあればいいんですけど。
お前が欲しいと思うようなものはない。イメージは原則として自分で作るものだから。
使うイメージはDockerが用意したdebianやubuntuなどの
最低限のイメージのみ。それを元にして自分で作る

> 実験でホストを汚したくないので。
Dockerはそういうものの代わりとして設計されてないので
すぐにお前の実験はできなくなると言っておく。
それはDockerに問題があるのではなく、お前の使い方が間違っている
2018/08/23(木) 18:58:58.10ID:q1z8N/B0
ラズパイと同じ環境がほしいなら、
仮想マシンでRaspberry Pi Desktop X86でも使えばいいだろ

Dockerはアプリケーションに実行環境を一体化させるものだって
なんど言っても理解しないやつが湧いてくる
408login:Penguin
垢版 |
2018/08/23(木) 19:10:58.17ID:ZGFS8Yk4
すみませんでした。
自分でもっと勉強します。
2018/08/23(木) 20:06:23.78ID:NhXd7pKF
Dockerて、OSやアプリの仮想イメージファイルをコマンドで組み合わせ
メモリ上でつなぎ合わせて一つの仮想ディストリビューションをブートしたように
見せかけるソフトって理解でよい?
2018/08/23(木) 20:15:56.51ID:/Er2oz0C
全然違うかなー
2018/08/23(木) 20:47:22.20ID:AO6wJAqi
使ったこともないのに適当な事書くと常駐のスレ主に怒られちゃうからな
ちょっと調べた感じ、initなしでも動くそうだがゾンビプロセス問題とかめんどくさそうでマニアの領域
initから開始したらそれはそれで、それLXC(LXD)やん!って印象
2018/08/23(木) 21:22:51.21ID:jewCS8ED
>>409
WindowsのDLLヘル対策の超強化版って考えればいい。
知らん人は知らんかもしれんがw

Windowsでアプリを起動する時、外部DLLを使用していることが多々ある
そうすると、外部DLLのバージョンが変わって互換性がなくなった時、
アプリが動かなくなる可能性がある。

だからアプリのディレクトリに外部DLLを入れてシステムのDLLを
使用しないようにしましょうっていうのがWindowsのDLL対策

Dockerもコレと同じでアプリを起動する時、OSのライブラリなんかを使用してる
そういうのを先にインストールしたりしていなければいけないが

アプリのDockerイメージの中に一切合切入れてしまいましょうっていうのがDockerの考え方
2018/08/23(木) 22:53:16.60ID:Rl2wmT+c
視野狭窄の輩がバージョンドシンボルの話と混同しそうな予感
414login:Penguin
垢版 |
2018/08/23(木) 23:04:39.22ID:YJtvG1Lc
Kubernatesの日本での呼び方って決まってるの?
会うひとみんな違う言い方するし
YouTubeで外国語聴いてもみんな結構違う
2018/08/23(木) 23:22:07.73ID:igELEe5F
>>414
こっちで
https://mao.5ch.net/test/read.cgi/linux/1345027528/
■ このスレッドは過去ログ倉庫に格納されています

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