探検


Docker

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
2013/07/27(土) NY:AN:NY.ANID:5oaw2wHS
LXCを使った軽量仮想環境。
これからの動向が気になるところ。
情報共有しましょう。

http://www.docker.io/
2015/02/22(日) 12:56:58.34ID:0Yr0XXjs
>>130
なるほど。わかってきたよ。ようするに使い方の違いの問題だ。
俺が今Dockerを使ってやろうとしているのは主に開発の効率化で

各個人専用の独立した開発環境を作りたいから
> ただ、その場合例えば会社の 172.17.0.0/16 などに繋がらなくなるよね。
これとは逆に外が見えたり、外から見えない方が好ましい。

閉じた環境のネットワークの中に軽量なサーバーを複数台、
例えば構成が少し違ったり、アプリのバージョンが違うものを
立てて実験したりしたい時に、いちいちポートフォワーディングの設定を〜
とかをするのが面倒なんだ。

だがDocker社も含めてDockerを使っている人達の多くはインフラ系で開発系ではないのだろう。
(この二つで担当者を分けるのはナンセンスだと俺は思っているが)
だからそういう情報が少ないんだろうな。

Dockerを使って実運用のサーバーを作る時にルーティングがありえないっていうのはわかるよ。
その場合はpipework等を使って任意のIPアドレスを割り振るって話だ。

ただ(開発用に)ルーティングを使った使い方の話が少ない理由がよくわからなかったんだ。
2015/02/24(火) 09:05:32.25ID:2evo8piP
Dockerを使ってる人の多くはプログラマーな場合が多い。
なのでルーティングの知識は無い。
ポートフォワードならローカルからサーバーのMySQLにつなぐとか要件があってそこそこの知識がある。
2015/02/28(土) 00:10:34.13ID:msuPzX17
>>132
1行目と2行目がどう関連してるのかよくわからないな。
今時ならなおのことネットワークに疎いプログラマなんぞ
いないだろうに。
2015/02/28(土) 11:19:27.97ID:LAeFYtHP
>>132がプログラムに疎いインフラ屋なのだろう。

インフラ屋っていうのは取りあえず動くコードさえ
かければいいので、アプリを作れるレベルにない事が多いからさ。
2015/02/28(土) 12:38:24.52ID:C+fDuvD4
なんでも屋と分業しているチームの違いじゃね

>>132 は分業しか知らない上に、
ルーティングひとつまともに知らない人ばかりの場所で働いてると
まれによくある話だ

そんな奴らが回収率の高いビジネスに持ってけるわけないので、放っておけば良い
2015/03/07(土) 10:56:58.48ID:EY+nFfaa
DockerってDockefileに書いた順番に
イメージをコミットしていくだろう?

その時、Dockerfileの上のほうを修正すると
その下のコマンドを全部再実行することになる。

その時間を節約するには、Dockerfileは常に追記していくことになる。
でもそうするとDockerfileが見づらくなる。
だからといって並び替えると、コマンドを再実行することになって時間がかかる。

このジレンマどうにかならないもんかね。
2015/03/08(日) 14:40:14.30ID:bPLLRXhl
Dockerって最後にCMDとかでapacheをフォアグラウンドで起動したりするけどさ、
あれって普通に起動してスリープで止めたほうが楽だよな?
Docker自体にそういう機能があってもいいと思うけど。

CMD service apache2 start && sleep 36500d

これならapache起動前の環境変数の設定とかやらなくて済む
欠点としては標準出力の内容を見れないところだけど、
普通はログファイルに出力できるからsleepの代わりにtailを使えばいいし。

CMD service apache2 start && tail -f /var/log/apache2/error.log

CoreOSとかinit.dを使った起動方法が存在しないなら直接起動するしか無いけど、
普通のディストリ使ってるなら普通に起動したほうが楽だと思う。
2015/03/18(水) 15:43:26.39ID:mKTr+8Zp
Redhat Enterprise Linux 6.6でDockerを動作させようとしたのですが、
dockerサービスを起動すると、ログに
kernelを3.8.0にアップグレードしろと出て動作しません。
kernel2.6のままで、
Dockerを動作させる方法はないでしょうか?
2015/03/18(水) 18:19:04.21ID:dZDPfpFm
RH純正のrpmなら、動作するのでは?

動かないなら、RHEL v7.1で試した方がいいかと。

#6系よりもkernelのバージョンは上だし、Dockerの正式サポートがされているし > v7.1
140138
垢版 |
2015/03/19(木) 14:52:02.06ID:AeUiPQFK
>>139
RHEL7系はアーキテクチャが大きく変わって枯れていないので、
運用管理者が嫌がっているのです。
昨年12月位にCentOS6.6でDockerを試した時は動いたので、
RHEL6.6でも大丈夫かと思ったのですが。
今はCentOS6.6でもDockerは動作しないようです。
GitLabやDockerHub,Mavenリポジトリ,Jenkins,Sourceスタティックチェックサービス
など最新の開発サービスを、コンテナで分けて管理しようと思ったのですが
まだ共通に使われるサービスに、Dockerを利用するのは時期尚早みたいですね。
2015/03/19(木) 17:54:56.51ID:mC8YiUyo
Atomic Host もリリースされたし、硬くdockerを運用したいなら、RHELはいいディストリビューションだと思いますけどね〜

枯れてないことを言い訳にしても、新しい仕組みであるdockerを活用できるとは思えない…
2015/03/20(金) 00:35:19.69ID:AlorzVjT
今作ったCentOS6.6で普通に動くが
2015/03/20(金) 14:18:52.88ID:hZYPghKH
>>142
EPELのdocker-io?それとも、別のパッケージ?
2015/03/20(金) 17:25:53.97ID:B5UkL4Xx
>>143
EPELの
145login:Penguin
垢版 |
2015/03/26(木) 11:45:02.06ID:+4WYnNWp
>>118-120

> ・結局のところ、VOLUME指定は、ホストの/var/lib/docker/vfs/dir/配下に置かれてるボリュームを
> VOLUMEコマンドで指定した名前で、データボリュームコンテナ本体とそれを--volumes-fromで参照するコンテナから
>  参照できるようになる仕組みでしかない
>
> というのがわかってないと、ハマると思う。

見事にハマったよ。そのレス読んでたけど具体的に触るまで
聞いてても頭にはいらないもんだな。

そもそも、ボリュームを確認するためのdocker volumesコマンドがまだ未実装なんだな?
ボリューム”コンテナ" と言ってるし、コマンドないし、これハマって当然だろ。
https://github.com/docker/docker/pull/8484

未実装のdocker volumesの代わりに、docker-volumesというのがある。
https://github.com/cpuguy83/docker-volumes

これ使ったら、どのコンテナがどういうふうに参照しているかわかったよ。
docker-composeと組み合わせたときの挙動とか。

試してないけど、そこに書いてあるボリュームのデータの吸い出しは
docker-volumes exportでできるんじゃないかな?
2015/03/26(木) 22:40:30.87ID:86+CyKvk
もう少しまともに使えるようになってから使えばいいのだ
慌てるなんちゃらは稼ぎが悪い
2015/03/26(木) 23:22:56.71ID:k5Vl+Oiz
そんなこと言ってたら手遅れになるよw
2015/03/27(金) 22:36:17.32ID:Nx1UE05j
あれよあれよという間に Docket が肥大してしまったので、
もっと軽量でコンパクトなコンテナ実装が出るのを期待してる。
2015/03/27(金) 23:38:01.87ID:/Vo2ca4H
Dockerの周辺技術が増えただけで
別にDocker自体は肥大化してないと思うけどね。

どうせどんな技術も
肥大化 → 機能を限定した軽いもの登場 → それもバージョンアップで肥大化
の流れになってるしw

結局、軽いものっていうのは、当初は機能が少ないから軽いだけで
どちらにしろ肥大化の道をたどる。
2015/03/27(金) 23:49:53.40ID:oaagofw0
まあRocketでも使えば?
2015/03/27(金) 23:52:48.72ID:KNCOdC5R
Docker がシンプルじゃなくなってるから coreOS が Rocket 作ったんじゃないっけ?
2015/03/28(土) 11:59:18.40ID:9irPoxg5
>>151
Dockerも反論してるよ。

両方読んで思ったのが、どっちもこの業界で
勝利者になりたいって考えてるんだろうなってこと。

CoreOSが主張している「Dockerが肥大化している」は正しくないと思う。
ただしDockerがオーケストレーションとか周辺技術にまで手を出しているから、
CoreOSが本当に懸念しているのは周辺技術の方だろう。CoreOSもその分野だし。

Dockerがコンテナから始まって周辺技術に手を出しているのと反対に
CoreOSは周辺技術から始まってコンテナに手を出している。
スタート地点が逆なだけで、両者がやろうとしていることは同じだと思うよ。

評価するのは正式版になってからだろうね。初期の段階がシンプルなのは当たり前なので
十分な機能を持った時にシンプルさを保てているかどうかが重要。
2015/04/07(火) 05:49:49.36ID:rc//3BIB
CRATE使ってみたいDOCKERて何状態
2015/04/14(火) 17:01:29.78ID:wo5Qe7Fx
docker stopが固まる事がある。
CTRL Cで止めると、docker killばできず、docker rm -fもできない状態となるが、docker psで実行中の状態のまま。
dockerデーモンを止めて、コンテナのディレクターを手で削除して、dockerデーモンを止めると回復する。
dockerデーモンを止めずに、回復する方法はないだろうか?
2015/04/14(火) 20:11:21.65ID:nGgTgu9K
>>154
Boot2Docker使ってるでしょ?

それBoot2Dockerのバグだから。
TinyCoreLinuxの問題かもだけど。

普通に仮想マシンにUbuntuとか入れてやれば安定するよ。
止まらないことなんて一回も起きてない。

そもそもDockerしか入ってなくて、まともにCLI使えない
貧弱なBoot2Dockerは使いづらいだけ。さっさと捨てた方がいい。
156154
垢版 |
2015/04/17(金) 12:26:41.26ID:wgAu0fQ3
>>155
仮想OSでなく、
xeonの物理サーバーにCentOS6.6を入れてdocker-ioの1.4.1-3.el6で使ってます。
終了処理が10秒以上かかる
いろいろ調べた所、docker1.4のバグらしく、1.5だと直っているらしい。
1.5はまだ公式のepelリポジトリに入っていないので待ってみます。
157login:Penguin
垢版 |
2015/04/17(金) 23:00:53.02ID:2+Jl+YXB
1.6がでたのに、公式とか言ってるのは可愛そうだなw

まあLinuxディストリシステムの欠点とも言えるが、
そんなのに頼らないで、本当に欲しいものは
公式サイトからインストールした方がいい。
2015/04/17(金) 23:32:02.85ID:DursZPv2
1.5と何が変わったのかというか、ブログっぽく書いてたページってトップから行けなかったっけ?
久しぶりだからよくわからなくなった
2015/04/17(金) 23:34:01.75ID:9gMi+vK8
>>158
blogで検索しろ
2015/04/18(土) 00:03:43.05ID:u1tH5Ffu
>>159
すまんな完全に耄碌してた

結局、windowsで動かすdockerはvmwareでcolinuxじゃないということかなぁ
あと、リソースのリミットやcgroupはより実利用に向けてだね。あとは、レジストリのメモリサイズ減っててほしいな減ってたら使いたい
何よりもラベル助かる。というか必須にしようや

と、食いつきにくい餌をばらまく
2015/04/18(土) 00:32:50.36ID:f25WLGMH
>>157
公式から実行ファイル落としてきて差し替えるだけでアップデートできるしねえ
2015/04/18(土) 00:43:41.92ID:Poz6rK90
> 結局、windowsで動かすdockerはvmwareでcolinuxじゃないということかなぁ

誰か解読してくれ
2015/04/18(土) 09:37:55.75ID:5mupc9aD
スマン。俺では読解不能。
2015/04/18(土) 09:48:50.12ID:xfQzuhGH
>>161
Windowsを使うなっていうことだよ。 
2015/04/18(土) 10:11:00.81ID:Poz6rK90
>>164
それをいうのならMacOSXもじゃね?
Docker動かんし。
2015/04/26(日) 23:10:26.37ID:sEsBhdvh
>>162
colinuxは仮想マシンじゃないってことじゃないの?
2015/04/26(日) 23:36:12.81ID:2VqiUET5
ああ、「Winだと仮想経由になっちゃってコンテナとは言い難いな」ってことか?
それ踏まえて読み直すとやっと腑に落ちた

しかし読解レベルで食いつきにくいのは勘弁してもらいたいなw
2015/04/28(火) 09:15:57.60ID:caO6gV5W
とはいえコンテナが増えてくるとVMでモジュール化しないと管理しきれなくなる
2015/04/28(火) 17:43:20.89ID:p7aKCxVD
モジュール化するのはいいが、
なんでVMでなんだ?
もっと軽いものでモジュール化しろよ
2015/04/28(火) 18:08:46.50ID:caO6gV5W
その軽いものでホスト環境ごと分離できるなら
2015/04/28(火) 20:38:55.87ID:hA0EVbY2
>>170
Docker in Docker
2015/04/29(水) 03:55:39.36ID:BRRCxaDn
>>170
それがコンテナ(プロセス)のグループ化って考え方なんだろうけどね。

ようするのpsコマンドの表示の仕方が悪いって話でしょ?
psした時に、特定のグループは一つにまとまって見れて
そのグループ単位で起動とか停止できればいいんでしょ?

複数のコンテナをまとめて管理するなら、docker-composeが使えるし
イメージやコンテナにラベルが付けられるようになったから
自分でコマンド作ればいい。

最終的にはsystemdと連携してプロセスグループとして管理される。
これが現在進行中の流れだよ。

今すぐ使いたかったら、
GoogleのKubernetes等のコンテナ管理ツールを使えば良い
2015/04/29(水) 10:07:13.07ID:nNg4AUbS
>>171-172
実行状態もだけどコンテナ間通信のためのポート構成のカプセル化が目的
今度試してみる
2015/04/29(水) 16:58:01.42ID:MqTXUcHY
DebianでDockerを使いたい
2015/04/29(水) 19:45:04.67ID:PVvnkZA4
>>173
コンテナ間の通信であればポートを気にすることはない。
普通にコンテナ間でIPアドレス指定してアクセスできる。

ポートを気にするのはコンテナの外から
アクセスする部分だけ。
2015/06/22(月) 09:59:59.87ID:MKn1D3b3
どっかの馬鹿がDockerに関しての話題をここじゃなくて、
こっちでやれって言ったからこっちに書いてるよ。

興味があったらどうぞ

プログラムに詳しくなりたい
http://peace.2ch.net/test/read.cgi/tech/1346595505/
2015/06/22(月) 11:45:56.32ID:wFV4fNrq
ドッカーポエムが繰り広げられていますね。
2015/06/24(水) 06:47:05.78ID:RBigAIuG
DockerでCentOS7使おう思ったら
systemctlが無いやら(7.0)、B-Busがなんやら(7.1)出てしまうので
先人の教えを請うて次の魔法の言葉を打ったらsystemctl使えたけど
docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
docker run -p 80:80 centos:centos7 /sbin/init
sudo nsenter -t $(sudo docker inspect --format '{{.State.Pid}}' centos) -m -u -i -n -p /bin/sh
なんですの?これ
2015/06/24(水) 07:03:31.25ID:FN4gTzV8
どこが魔法なんだ?。/sbin/initか?。
2015/06/24(水) 19:39:41.29ID:bjzS3wSj
>>179
たぶんnsenterがゲストのCentOS7でsystemctl使えるようにする魔法の言葉だと思うんだけど
なにしてるの、これ?
(ちなみに-p 80:80はいらなかったのかも知れないがとりあえず入れただけ)
2015/06/24(水) 20:16:07.45ID:FN4gTzV8
普通に、CentOSを起動した時に動くデーモンを全部起動してるだけ。
必要なものだけに厳選するなら、supervisordとか他の手段を使ったほうが良いと思う。
2015/06/24(水) 20:33:23.05ID:U/GFm2K0
これを会社のシステムに使おうとしてる俺の会社って狂ってるよね
社内にLinuxに精通した奴なんておらんし
2015/06/24(水) 20:46:10.82ID:bjzS3wSj
>>181
ありがと、
とりあえず/sbin/initでコンテナ上げとけばsystemctlが使えるようになるから
あとはnsenterとかsupervisordやらでコンテナのshに入ればいいってことなのかな?
2015/06/24(水) 20:48:34.35ID:iMr9lwQF
>>182
Dockerを使おうって会社っていうとNTTデータ?IBM?
大きな会社だね。
2015/06/24(水) 20:52:07.25ID:mO3FIYM5
>>183
今のコンテナに入る方法はdocker execだよ。
nsenterとか使わない。

あとコンテナの中でsystemdも使わない。
そもそも使い方が間違っていて
コンテナは仮想マシンじゃない。

コンテナは原則として一つのアプリを動かすもの。
その一つのアプリを動かすのに必要なものを
固めたのがコンテナ。

動かすのは一つのアプリだけなのだからsystemdもいらない。
2015/06/24(水) 21:31:09.12ID:bjzS3wSj
>>185
なるほどハイパーバイザーみたいに使うのは違うんか
VPS借りてさらにその上で仮想化したくて
KVMはQEMUしか動かなくて糞遅く、VBは32bitしか使えず、
Dockerもsystemd使えなくて駄目かと思っていたら使えてウハウハしてしまった
2015/06/24(水) 21:36:56.22ID:bjzS3wSj
>>185
最初はdocker execでCentOS7コンテナの/bash/shに入ったらsystemctl使えなくて
ホストのUbuntu14.04自体に無いからかな?と14.10に上げてsystemctlあるなと思ったが駄目で
インターネッツ探したらnsenterでごにょごにょ書いていたからやってみたら出来たっていきさつです
2015/06/24(水) 21:50:06.98ID:FN4gTzV8
何を動かしたいんだ?。
webserverか?。
開発環境?。
2015/06/24(水) 21:51:19.57ID:bjzS3wSj
>>188
Clamdscanを動かしたよ、試験で
2015/06/25(木) 00:20:22.65ID:cLOb0vS2
これってWindowsでいうApp-Vみたいなもん?
2015/06/25(木) 04:18:41.26ID:wvwj0TJ4
>>186
実際マシンの仮想化はしてないからね。
ハードウェアのエミュレートなどはしていない。
chrootの技術の延長

WindowsでDLL Hell とかいう言葉を知っていればわかりやすけど
アプリAとアプリBがあります。どちらもOSのDLL(ダイナミックライブラリ)を使います。
アプリAをバージョンアップするために、OSのDLLのバージョンアップも必要です。
OSのDLLのバージョンアップしたら互換性がなくて、アプリBが動かなくなりました。
というのがDLL Hellというやつで、Linuxでも同じことは起きる。

この対策としてアプリAのディレクトリにOSのDLLを含めました。
などとアプリAのディレクトリに、OSのDLLすべてをコピーしちゃう。

更にプロセス空間やネットワーク関連も独立させて、完全に隔離された状態で
アプリケーションを動かすっていうのがアプリケーションコンテナ。

あくまで一つのアプリを動かすために、そのアプリに必要なものを
すべてまとめてしまってるだけなので、ホストOS上で
(コンテナ化された)アプリを動かすという考え方をする。

同じコンテナ技術を使って仮想マシンのように使うOpenVZとかあるけど
あれとは考え方が違うので注意。

一つのコンテナの中で動かすターゲットは一つ(+それを動かすために必要物)なので
わざわざsystemd使う必要もないってわけ。
2015/06/25(木) 04:19:11.90ID:wvwj0TJ4
>>190
これか。
http://www.atmarkit.co.jp/ait/articles/1006/24/news108_2.html

ざっと見た感じだとかなり似ているな。
なんだかんだでWindowsは既に実現してるんだなw
2015/06/25(木) 04:47:29.57ID:wvwj0TJ4
仮想マシンの使い方だと、マシンを新たに作って
OSのインストールを終わらす。そこまでが仮想マシンを作る段階で、
それから、よーしこれからアプリケーションをインストールするぞーって
考え方だと思うけど、

Dockerの場合、アプリケーションが使えるようにする所までが一連の作業になる。
Dockerfileに定義した内容に従って、すぐに使えるDockerイメージを作る。
そのイメージを共有することで、

あ、あのアプリ使いたいな。って思った時にyumやapt-getでインストールする代わりに、
イメージをpullしてきてそれを起動する。
(Dockerイメージを起動して作られるのがDockerコンテナ、実行ファイルと起動したプロセスのような関係)

Dockerコンテナの中にはアプリを動かすため必要なカーネル以外のすべてのものが
含まれているから、Dockerさえ動く環境があれば、すぐにアプリが使えるようになる。

ちなみに、CentOSとかUbuntuの違いというのは

* カーネル + CentOS独自のパッケージと設定
* カーネル + Ubuntu独自のパッケージと設定

であるため、Dockerコンテナにはカーネル以外のすべての部分が含まれているということは
ホストOSがCentOSであっても、Ubuntuベースで作られたコンテナが使えるということ。
カーネル部分は多少のバージョンの差があるにしろ同じものだからね。
2015/06/25(木) 16:06:19.25ID:C9lLKxO7
>>186
>VPS借りてさらにその上で仮想化したくて
>KVMはQEMUしか動かなくて糞遅く、VBは32bitしか使えず、

そういう用途だとLXCそのまま使うのが良いかもよ
http://knowledge.sakura.ad.jp/tech/2108/
2015/06/26(金) 19:34:35.84ID:5utg5Beh
>>194
そうなの?結構前だけどLXC使おう思ったが面倒そうでOpenVZに逃げたんだがw
(その時はホストがCentOSだったから面倒だった気もするけど)
今やDockerでまとまってウハウハ
2015/06/26(金) 19:50:34.74ID:HiTWIHDc
そうか?。CoreOSと喧嘩したり、色々きな臭い感じじゃん。
2015/06/26(金) 21:26:26.16ID:wntHkts6
和解しとるやん。
情報遅いな。
2015/06/26(金) 23:22:40.84ID:ngeDw7mz
CRIU使ってマイグレーション辺り、やってる人いる?
199login:Penguin
垢版 |
2015/06/30(火) 04:52:28.11ID:E9eQFop9
>>193
お前まだそんな事言ってるのか
Dockerは小さな単位の仮想環境だよ
2015/06/30(火) 09:07:07.07ID:zxK55uyU
>>199
理由書かないと何の説得力もないよ。

仮想環境と書いているが曖昧で、俺が言ってるのは
アプリを仮想化したものだと言ってる。
Dockerで作るのは仮想マシンではない。

この二つをごっちゃにすると、
仮想マシンの中でDockerを作るのは意味が無い。などと勘違いしてしまう。

仮想マシンの中であっても、アプリをインストールして起動する。
Dockerを使うと、このアプリのインストールと起動が簡単になる。

使い方が全く違うんだよ。
2015/07/01(水) 07:55:16.75ID:Z6eyldi3
アプリを特定の環境 (/usr/lib/libなんちゃらの特定のバージョンがある、など) で動かすための仕組みが仮想環境じゃねーの?

仮想環境をポイっと用意されたらその中で案件毎に複数のアプリをインストールしたりして、
ただ単に分離されたフルのOS環境として使うのが従来の仮想化の一般的な使い方だったけど、
KVMやESX, Hyper-Vなんかよりcgroup/namespace使ったコンテナはとっても軽いので
特定の仮想環境と特定のアプリ(nginx)をワンパッケージとして管理したら良いんじゃない?
ってことで出て来たのがDockerってことと思ってるが
2015/07/01(水) 09:10:05.82ID:qZ14qlfM
>>201
仮想環境と言われると曖昧だが、
仮想マシンではないということ。

> 仮想環境をポイっと用意されたらその中で案件毎に複数のアプリをインストールしたりして、

「複数のアプリをインストールしたりして」の部分ね。
これがDockerコンテナ化された複数のアプリに変わる。

仮想マシンの中に複数アプリを入れると言っても、
そのアプリには設定が必要。何も設定しないでもいいアプリはあまりない。
つまりアプリのインストールというのは面倒な作業といえる。

それを軽減するためにChefなどのツールを使ったり、
AmazonのAMI(仮想マシンイメージ)を作ったりするが、
それは、アプリとアプリの依存関係を定義しているようなもので、
【「仮想マシンの中に入れる複数のアプリ」で構成されたもの】を作ることになる。
言い換えると、アプリの設定 と アプリ間の連携の設定が結びついてしまう。

Dockerコンテナの場合、単体のアプリを作るものだから、アプリのみの設定を行う。
そのアプリの連携はDockerコンテナの起動オプション(またはdocker-compose等)で行う

だから軽いっていうのもあるけど、新しいアプリのインストール・デプロイの方法なんだよ。
Dockerを導入した場合、仮想マシンというのはマシンスペックを増やすために作るもので、
その中で動かすアプリは柔軟に変更できる。

今のサービスは複数のアプリで構成されるのは普通だけど、その構成を決め打ちで定義してしまうものではなく、
Dockerコンテナで設定済みのアプリを作っておき、そのアプリの配置を好きに変更できる。
1仮想マシン、1アプリでもいいし、ハイスペックな1仮想マシンで全アプリにするのも自由自在
2015/07/01(水) 17:12:08.87ID:QZyNX2QN
ようはOSすら1アプリって言えるってことでしょ?
2015/07/01(水) 21:24:41.14ID:qZ14qlfM
>>203
ニュアンスの違い程度な気もするけど、
俺が言ってることを正確に表現するなら、
OSをアプリに内包するってこと。

(カーネル以外の)OSがアプリの一部になる。
Windowsで言えば、C:\Windows以下にある各種DLL全てを
アプリのディレクトリに入れたようなものかな。

メインはアプリであって、OSを使っているわけじゃないので。
205login:Penguin
垢版 |
2015/07/02(木) 09:28:55.60ID:mKmwTgm8
オブジェクト指向信者みたいな奴だな
ただの軽量な仮想環境なんだから、使いたいように使えばいいだろ
2015/07/02(木) 10:52:36.77ID:z4WVp09k
パフォーマンスチューニング考えると複数のアプリを1つのコンテナにまとめた方が良い、という話もあるしな
2015/07/02(木) 14:06:34.10ID:5geABXwh
パフォーマンス的にも専用OSにDocker載せたほうが軽い
2015/07/02(木) 22:52:53.42ID:Lv3VGZCA
>>205
いや、軽いだけの仮想マシンとして考えると使いづらいところが多いんだよ。
間違ってそう考えたがゆえにDockerは使えないと判断する人もいるしね。
違うものとして考えないと。

>>206
例えばSQLiteというデータベースライブラリ(サーバーではなくて)があるけど
これと同じようにデータベースをアプリに内蔵するという考え方で
MySQLを一つのアプリに内蔵するというやり方はある。

でもパフォーマンスチューニングという点で、一つのコンテナに
まとめたほうが良いという意見は聞かないな。どこで聞いたの?

>>207
さすがに物理マシンでそのまま動かしたほうが速いでしょw
もちろん仮想マシンよりかは速いけどさ。
2015/07/02(木) 23:47:26.08ID:FFV0y9jb
>>208
http://thinkit.co.jp/story/2015/05/26/6037
2015/07/03(金) 00:19:35.51ID:k+OnBZ4c
コンテナ内のチューニングは面倒だな
環境でころころ変わって統一的にコンテナを扱えなくなるのはうまくない
2015/07/03(金) 00:31:25.65ID:8GVUR/eP
> 環境でころころ変わって統一的にコンテナを扱えなくなるのはうまくない
具体的に言うと、何がダメなの?
2015/07/03(金) 00:54:20.65ID:k+OnBZ4c
一部の環境でのみバグったり劣化したりするリスクが増える
2015/07/03(金) 09:06:01.15ID:8GVUR/eP
具体的にどの環境でのみバグった?

普通のアプリであれば、アプリ以外の部分、
つまりカーネル、OS、libc等の基本的な
ライブラリ、アプリの言語のバージョン、
その言語用のライブラリと依存するものが多い。

OSのアップグレードなんかしたら、それらが
変わってしまうから、一部の環境のみでバグったりするね?

でもDockerコンテナ化すれば、アプリにアプリが適切に
動く環境そのものを同梱できるから、
アプリ以外の部分は、カーネルのみになる。

だから一部の環境のみでバグるということが少ないはずなんだが?
もう少し、具体的な事例が聞きたいね。
2015/07/04(土) 09:23:31.50ID:GApZdgbL
dockerコマンド自体にバージョン違いがあるのだから、
管理側が2つを操作するよりは、1つをまとめておいた方がいい場合もあるやろ
面倒なやっちゃなー…
2015/07/04(土) 11:17:42.28ID:vy3VAPSr
>>214
ホストOS上で、二つのアプリを操作するのが面倒だってこと?
何を言っているのかよくわからない。
2015/07/08(水) 01:02:43.60ID:q/+csAyd
>>212
しばらく待ってみましたが、やはりそんなリスクは
想像だけのもので、具体例は出せないようですね。
2015/07/08(水) 01:03:41.39ID:q/+csAyd
>>214
こちらも結局説明なしのようですね。
想像で言ってみたけど外れてたという類
2015/07/08(水) 17:53:34.36ID:L+gsM06d
>>217
オプション指定一つとってもバージョン違いあるやろ
外れてるのはお前の頭のネジやで
2015/07/09(木) 00:40:54.89ID:I73reSJv
>>218
そっちじゃない。

> 管理側が2つを操作するよりは、1つをまとめておいた方が
これが意味不明という話
2015/07/11(土) 01:19:07.36ID:anWWthE2
Dockerって、chrootみたいなもの?
2015/07/11(土) 02:06:58.00ID:HaC4FdeK
>>220
「chrootの機能を継承した技術」を使いやすい形に統合したものかな。

知っているとは思うけど、chrootは単に
プロセスから見えるルートディレクトリを変更しただけ。

それを更に発展させてルートディレクトリだけではなく
プロセスやネットワークも分離させて、プロセスに対して
そのプロセスに独立した環境を作り出すのがコンテナ(LXC等)

ちなみに古いバージョンのDockerはLXCを利用していた。
今はlibcontainerを使ってカーネルのコンテナAPIを直接呼び出している

でDockerはそのカーネル提供しているコンテナAPIを応用して作られたソフトウェア
コンテナのビルド(作成)とその実行を行うための環境を提供している。

コンテナAPI自体は昔からあったわけだが、従来は使うためのツールが不足していて大変だった。
Dockerを使うとDockerfileというテキストファイルを用意することでコンテナイメージを
簡単に作成でき、コンテナが利用するリソース(CPU、メモリ、メットワーク)を
コマンドライン等で指定しつつ簡単に起動や停止が行えるようになる。
2015/07/11(土) 02:33:01.48ID:dtHUPhjn
chroot+jailの発展形という説明があったな
2015/07/11(土) 22:11:03.10ID:anWWthE2
>>221
昔流行りかけたXenみたいな感じでいいのかね?
コンテナイメージってファイル群じゃなくてでかい単一ファイル?
2015/07/11(土) 22:22:42.65ID:/s68H1Fx
>>223
Xenはマイクロソフトに魂売ってHyper-Vでしょ?wハイパーバイザー部類だしょ?
コンテナは単一じゃなくてホストの1プロセスでは?
2015/07/12(日) 00:57:09.23ID:PCy1xmlB
>>223
> 昔流行りかけたXenみたいな感じでいいのかね
ぜんぜん違う

chrootを知っていて、なんでそう勘違いするのかよくわからんが、
同じカーネルで動く1プロセスのルートディレクトリと
プロセス空間その他を隔離しただけ。

違いの一例を上げるとXenもKVMも仮想マシンを作るから
仮想的なハードウェアの一つとして仮想ディスクも必要になる。
だけどDockerはchrootと同じようにルートディレクトリを変えるだけだから
カーネルから認識されている同じディスクを使用する。

Dockerのコンテナはカーネルから見れば、単なる1アプリにすぎない。

> コンテナイメージってファイル群じゃなくてでかい単一ファイル?
chrootと同じようにファイル群。

1つのイメージは複数のレイヤーから構成されレイヤーにはファイルシステムの差分が記録される
1つのレイヤー = 1つのディレクトリ、通常イメージの最初のレイヤーにはchrootと同じく
OSのシステムファイルのほぼ全てが、次のレイヤーには差分だけが記録される。
このレイヤーはコンテナイメージの修正時に再利用/共有されるため、時間とディスクの節約になる。
2015/07/12(日) 00:59:18.70ID:PCy1xmlB
訂正
× レイヤーにはファイルシステムの差分が記録される
○ レイヤーにはファイル単位で差分が記録される

別にディスクイメージが記録されてるわけじゃない。
レイヤー=ディレクトリに普通にファイルがある

こういう仕組みを提供しているのが
Dockerなわけだね。
2015/07/12(日) 20:08:46.06ID:EFKucpQc
>>225
ネットワークってどうやって別空間にしてるの?
chrootのときはしかたないからエイリアス使ってたけど
あとchrootのときみたいにやたらマウントポイント汚す?
2015/07/12(日) 20:10:01.65ID:EFKucpQc
chrootが謎の技術で/dev,/procを別物にした上で
上にaufsみたいなのが被さってるイメージでいいの?
2015/08/06(木) 21:55:45.71ID:MXfRwabf
k8sを使うと同一ホスト上の複数のコンテナに同じポートを割り当てられるんでしょうか?
230login:Penguin
垢版 |
2015/09/05(土) 14:48:10.85ID:LcT94aSm
Dockerで同じイメージを冗長化のために
A,B、2台のプライベートレジストリにpushしたとします。

Dockerfileでベースイメージを指定する時、
Dockerfileを書き換えずに、ベースイメージを取得する
プライベートレジストリのサーバーを変更する方法ありますか?

ただし2台のプライベートレジストリ(サーバー)はホスト名が異なり
DNSの変更は行わないものとします。

ぶっちゃけDockerfileのFROMに
プライベートレジストリのURLを含めることが気持ち悪いです。
2015/09/07(月) 21:00:17.40ID:l456kIj1
いったんローカルに持ってきてからtag付けたら
■ このスレッドは過去ログ倉庫に格納されています

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