Docker
レス数が1000を超えています。これ以上書き込みはできません。
LXCを使った軽量仮想環境。
これからの動向が気になるところ。
情報共有しましょう。
http://www.docker.io/ >>2
はるな愛と椿姫彩菜と佐藤かよと誰のが舐めたい? LXC単品ではなくDockerを使うメリットってなによ Docker Indexを利用したコンテナイメージの共有とかはいいかな
ソースコードをguthubで管理するのと、同じイメージで利用できるし >>7
* Dockerfile
* aufs
* Docker Index
* NW(bridge, iptables etc)
NW はかってに色々されるのが気持ち悪いけど、
基本的にだれでも強制的に同じような構成になるので
ミドルウェアの設定を説明したり、他人に自分と同じテスト環境を
用意するのがすごく楽。
要は、やりたいことがコンテナ操作じゃなくて、その上に
のってるアプリケーションで何かをすること という場合に
(インフラエンジニアではない大半の人)インフラ部分を
かってに用意してくれる。 カスタムイメージつくりにハマり中
apt-get update すると一気にファイル要領が増えるなあ
ちょっと考え中
素に近いイメージ作った後、Dockerfileでいじったほうがいいかも まぁ、redhatだとサポートは長く続きそうという期待はあるけどな。 Dockerをダウンロードする場所を教えてくれ。
くれぐれも言っておく、
曖昧な答えは希望してないぞ。
正しい場所を教えてくれ。 Docker使ってマシンを使い捨てにするのはいいんだけど、
マシン再起動したらデータ消えましたじゃ話にならないし、
データはどこかに保存しなきゃいけないだろ?
どうすんの? >>15
コンテナ内ファイルはホストで取り出せる
あるいはコンテナ外のDBとか
サーバーにアクセスすればいい core@localhost / $ docker run centos /bin/echo "Hello World"
Unable to find image 'centos' locally
Pulling repository centos
0b443ba03958: Downloading [==========> ] 19.55 MB/91.18 MB 32m21s
539c0211cd76: Downloading [==========> ] 20.61 MB/98.56 MB 33m24s
511136ea3c5a: Download complete
7064731afe90: Download complete
このまま帰ってこないんだけど、何か忘れてる? GAEで動くのは良さそうだけどインスタンス扱いどうなるんだろ >>12
centosのイメージはシェルが腐ってる apt-cache で、dock アプリを探していて、Docker に
であったわけだが、ぐぐってみても、コンテナが何それで
ちんぷんかんぷん。潔く諦めたでござる CentOSのイメージで
Changing password for user root.
New password:
/usr/share/cracklib/pw_dict.pwd: No such file or directory
PWOpen: No such file or directory
こんなエラー出るんだけど俺だけ? >>28
公式のはrpm上インストール済みでも、ファイルが消されまくってるのが原因ぽい。
その現象だけなら、cracklib再インストールで治るはず
いろいろやりたい場合は、自分でcentOSイメージを作った方が良さそうだね Dockerfileはシェル使わないと動的な構成できない
データ保存コンテナは外部からの自動コミット必須で、
何かトラブったら簡単にデータ消えるので、
仮想fsとホストボリュームの組み合わせに落ち着く
動的なネットワークへの対応が無茶
これほとんどLVMとchrootとシェルで仮想マシンイメージ作って
運用してるのと変わらない…というよりそれより不便だし、普通にうんこじゃね?
なんで流行ってんの?
速度のためにここまで不便を強いられるなら、
Vagrant+Chef/Ansible+スナップショットで良い気がしてきた > なんで流行ってんの?
自分でわざわざLVMとchrootを組み合わせて作らなくても用意されているから。
さらに便利なのが、一度やった処理を省いてくれる機能。
具体的に言うと、OSを0からセットアップする時、
A、B、C といったアプリをセットアップするわけだが、
Cのセットアップ中に、Bの設定が間違っていることに気づいた。
0からやり直しかよ。っていう場合、Aの設定を省ける。
もちろん、Cの設定を何回やり直そうが、A、Bの設定は省ける。
Dockerfileを使うと自動的にこうなるから、
Dockerfileを一歩ずつ作っていける。
仮想マシンがBIOSの起動から始まるから、何度も0からセットアップするのが
苦痛なのと対極にDockerだと、変更点以前は一回しかやらないから早い > Vagrant+Chef/Ansible+スナップショットで良い気がしてきた
の問題点、Chefの真ん中あたりの設定をちょっと書き換えると
数分かかる。もちろんChefの文法を覚えないといけない。
Dockerはほとんどシェルスクリプトと一緒。
ぶっちゃけどちらもやってることは、単なるCUI使ったインストール、
つまりapt-getやyumでできることなのに、なんぜわざわざ
なぜ変な命令を大量に覚えないといけないのか。
Chefはそこがおかしい。 >>33
Dockerでも書き換えたらやり直しだよ
Chefが嫌いならAnsibleでいいじゃない >>32
>自分でわざわざLVMとchrootを組み合わせて作らなくても用意されているから。
違う違う逆
結局LVMなどのfs仮想化が必要だって言ってるんだよ >>34
やり直しじゃないよw
やり直すのは変更点より以降だけ
OSのインストールって時間かかるんだよね。
で、Dockerfile使っていればインストールが終わった所で
自動的に保存。あとはDockerfileの一行ずつ自動保存
だからDockerfileが以下のようになってる時、
[OSインストール完了]
Aの設定
Bの設定
Cの設定
Bの設定を書き換えても、OSのインストールやAの設定は二度とやらない。
これにより、OSのセットアップが試行錯誤でできる。
試行錯誤というのは特殊な命令は必要なく、て単なるシェルスクリプトを作るのと変わらない。
途中までやったら、マシンを削除して0から作り直し、と言ってもやった所は自動的に省かれるから
OSのセットアップしていくのが、簡単に高速に行える。 >>35
> 結局LVMなどのfs仮想化が必要だって言ってるんだよ
LVM作っても、差分セットアップ(今までやった所は省く)は
できないからね。そういう仕組みを自分で作るは面倒すぎる。
自分でわざわざスナップショットを取らないといけないし、
このスナップショットは、なんだろう? どこから
枝分かれした、どの部分かな?ってのを管理しないといけない。
そういう面倒なことはDockerが全部やってくれるから
Dockerインストールするとすぐに使える。 もしかして、構築テストの話じゃなく、実運用の差分の適用の事言ってる?
Chefは逐次実行じゃなく、環境の中身の差分まで検出して変更するから、
Dockerより遥かに柔軟に実行してくれるよ
上の例のVagrant使う場合は、構築のテストも含む場合が多いから皆1から再度作る
>>34はそういうテストをする場合、Dockerでも同じという意味ね
もしかして、Chef使ったことない? 俺がChef等が意味不明だと思うのは、特別すぎる
言語を使わないといけないというところ。
だってさ本来OSのセットアップなんて、CLIから手動でやれてたわけじゃん?
その手動で入力したコマンドをsetup.shというスクリプトに
まとめて実行すればセットアップが完了できるわけじゃん?
なのにわざわざ別の言語を使うってのが意味不明なんだよね。
Ansibleは少しマシだけど、それでもまだ特殊。
Dockerfileはほぼスクリプト言語だよ。
コンテナ環境の外と通信するための命令が少しあるのと
はコマンド一行実行するごとにコミットする必要があるから、
コマンドの頭にRUN を書くことぐらい。 >>36
インストールが不便って、snapshotからの適用もできるよ
起動は確かに遅いけど、動いてしまえはオーバーヘッドは少ないから、
実運用が不便になるよりはマシと思った
総評として、速度のためにそこまで面倒な事したくないなと思ったよ
過剰に擁護する人は、評判に振り回されてるだけでないかな? >>39
Chefはそこまで難しくないよ…食わず嫌いもいいとこ
それにRubyが嫌ならAnsibleって選択肢もあるよ
これはDockerfile程度の簡便さで書けるよ それと俺が本当に一番知りたいのはデータ保存のことなんだ
Dockerに詳しいなら説明お願い
または現実でどう対処してる? >>38
あぁ、冪等性の話ね。
Chefはね。あるべき状態に保つことはできるけど、
あってはならない状態にすることはできないんだ。
全く同じ状態を作り出せない。
たとえばA、Bという環境があって、AとBの内容が違っていた場合、
Chefを動かしても、AとBを全く同じにすることは出来ない。
レシピに書いてあることは守れるが、書いてないことは守れないから。
全く同じ環境でなければ信用ができないので、結局0から作り直す必要がある。
もしくはベースとなるイメージを自分で管理するとかな
その作業は面倒で遅い。
できてしまったレシピを実行するだけなら楽かもしれんが、レシピそのものを
作るのがすごく面倒だからな。単に新しく仮想マシンを起動するのにも
数分かかるレベルだし(Dockerなら1秒)
Dockerfileを使ったら、環境を作成するたびに0から作っているのと同じになる。
そしてDockerfileの一行ごとに状態がコミットされているから、
0から作っているように見えて、変更点以降のみを実行するから早い。 >>42
データ? 永続性があるディスクを
Docker内にマウントするだけだろ。 >>43
あのね、そもそもChefは同じ「要件」の環境で動かす事を目的にしてるんだから
要件整えば十分なんて当たり前の話なの
同一環境が欲しいならスナップショット
Dockerのが遥かに制限あるのに何言っちゃってんの?
エバンジェリスト気取りで講義したいなら初心者相手にしてくれよ >>41
> これはDockerfile程度の簡便さで書けるよ
それはない。
Dockerfileでapacheをインストールする時に書くのは、
RUN apt-get install apache2
これだけだから。
重要なのは、CLIで入力したものとほぼ同じであるということ。
簡便に書くのが目的なんじゃない。
CLIで書いたものがほぼそのまま使えるということが重要。
Ansibleだって別の書き方に、書き換えないといけないじゃないか。
CLIで試行錯誤したものが再利用できない。 >>44
永続性のあるディスクのマウントね…ハア…vオプションを言ってるんだろうね
あのね、それのせいで可搬性のため、fs仮想化しないと駄目って言ってるんだよ
データ専用のコンテナ作る場合でも、自動コミットされないよねとも言ってる
意味わかるか?
外部ツール使わず、簡単に対処する方法あるなら是非教えてください >>45
だからChefは要件を満たすレベルでしか出来ないわけだろ?
それは同一ではない。同一でないということは
時がたったら同じ状態を0から作ることができないかもしれない。
Dockerは同一に出来る。なぜなら全てスナップショットと
同等のものが使われているから。だから優れているわけ。
これがみんなが使う理由だよ。 >>48
Dockerの効果的な部分って起動と可搬性であって
その部分は従来のスナップショット差分で十分だよ
君どういう使いかたしてるの? >>47
データ専用コンテナを自動コミット?
おまえもしかして、Dockerをデータのバックアップツール、
スナップショットツールとして使おうとでも思ってるのか?
問題が起きた時に、ある日時のデータに巻き戻すとか。
君はまず、システムとデータを分離することの大切さを
学んだほうがいいよ。原則としてDockerの中にはデータを置いてはいけない。
AWSのEC2とか使ったことある? あれマシン停止したら
データ消えるのが原則だからね(EBS使えば残せるが)
マシンが存在しない状態から、同じものを何十台も作る
(データは共有でありここには含まれない)という
やり方自体を理解してないでしょ? >>49
> その部分は従来のスナップショット差分で十分だよ
そりゃできるだろw
面倒くさいって話なんだら。
いちいちスナップショットを管理してられるかw
Dockerfileの作成とメンテナンスに、
「スナップショットを取る」という作業は存在しない。
なぜならDockerがすべてを管理してくれるから
どのスナップショットが、どのスナップショットを元にして
っていう組み合わせをDockerfileの一行に対応して自動管理。
人間はDockerfileを修正するだけでよく「あのスナップショットから作ったら早いかな?
あれにはなんて名前をつけていたかな」などという作業が不要になる >>50
EC2は関係ないよね、それにそういう場合普通にEBS使うし
どうやら期待してたものとは随分違うみたいだね
先ほどのは、マウントして永続化という運用をした事があるって事だよね?
具体的にどう使ってるか教えてほしい
それが複雑なら、以前の環境で落ち着く事にするよ >>51
>いちいちスナップショットを管理してられるかw
現実としてDockerで管理してるでしょうが…本当に使ってるのか?
コンテナという定点を作ってるだけで、
派生したコンテナがあれば、結局全て更新する必要が出てくるでしょ
やってる事は同じだよ
ただDockerは軽い EC2に相当するものをCPU仮想化とか使わずに実現できて、
立ち上げ高速、ベースイメージとかスナップショットをハッシュを使って簡単管理
って感じのものだと思ってた 利点もうひとつあったね、共有リポジトリのベースイメージは確かに便利だ
Vagrantと違い、公式のイメージがあるのは良い 結局、単なる煽り屋の説教強盗だったか
最近こういう奴増えすぎてうんざり >>53
> 現実としてDockerで管理してるでしょうが…本当に使ってるのか?
俺が管理って言ってるのは、人間がスナップショットを取る作業のことだよ。
DockerはDockerが勝手に管理してくれる。
人間がすることは何もない。
だから楽だって言ってるの。 ローカルのvar/lib下のdockerフォルダの構成と特定のイメージだけを別環境へ移行する方法教えて下しあ Docker上のCentOS7でsystemdが動かないのはなんで? >>57
仮想化でも、それなりな管理用ソフトウェア使えばSS周りの使い勝手も良いし、
実際に自分の場合、そこは大して変わらない
そんな枝葉の事はどうでも良いから
Dockerを主体として、データの永続化をさせる具体的な運用方法を教えて欲しい
特にあんたの具体例
これで4回目
いちいちくだらない事で煽ってたんだから、まともに答えなさいよ? >>60
なんかクレクレ君になってるなw
データの永続化ぐらい調べなさいよ。 クレクレ君に餌与えるのも嫌だが、
何も知らないと思われるの癪だからヒントだけあげるわ。
イミュータブル インフラストラクチャ
http://ja.wikipedia.org/wiki/Immutable_Infrastructure
> Immutable Infrastructure(イミュータブル インフラストラクチャ)は不変なサーバー基盤のこと。
> 具体的には、一度サーバーを構築したらその後はサーバーのソフトウェアに変更を加えないことを意味する。
なんでDocker(やAWSのEC2)が仮想マシン(コンテナ)を沢山起動して
終わったら消すという設計になっているのか。その理由がイミュータブル インフラストラクチャな。
一度サーバーを構築したらその後はサーバーのソフトウェアに変更を加えない。
だから、イミュータブル インフラストラクチャにおいて、
データは仮想マシン(コンテナ)の中に置いてはいけないんだよ。
新しい技術を手に入れたのに、それで古やり方を真似るのは馬鹿がすることでな。
古いやり方を捨てて発想の転換をしなくちゃだめ。
以前やっていたあれをどうやって実現すればいいんだよ!という質問は答える気を無くす。
説明した所で、俺は嫌だ昔のやり方がいい。昔のやり方でこれまでもやってきた。
昔のやり方に戻せっていいだすから。というか既に言ってるからねお前。 ここまで一応真面目に二人ともの長文を読んだつもりだったけど、この言いぐさには笑った。
典型的な「発想の転換」馬鹿だな、という感想しか思い浮かばないわ、さすがにこれ。
的外れなDocker信者が騒げば騒ぐほどbuzzword化しかんねんから、
正直いいから黙っておいてくれよ迷惑すぎるわ本当もうね。 そうさ! 俺の理解できないものはなんでもバズワードさ!
という意見を見た気がするねw >>61-62
結局老害のレッテル貼って藁人形論法してるだけだな
取ってつけたような解説どうも
考え方の否定なんてしてないし、簡単にできない、向いてないなら、
素直にそう一言言えば良かっただけだ
散々否定してきたから、今更言えないか?
そもそもDockerを無視してEC2!Immutable Infrastructure!という態度は
否定どころか、既に俺の意見の強化すらしてるとも取れるけどな
今レスしてる理由は、単純に自分が使って難しい、不便な部分を
簡単にできるかの様に言うので、教えてと言ってるだけなので
>以前やっていたあれをどうやって実現すればいいんだよ!という質問は答える気を無くす。
「〇〇があるだろ」と言えば終わりだろ
そりゃいくら予防線張ったところで、今更fuseやdevice-mapperとか、
Dockerの優位性なんてない、とぼけた事抜かされても困るよ?
やるならビシっと頼むぜ? これ5回目な >>65
Dockerの優位性は、簡単だからだろ。
Dockerと同じ仕組みを作るのに
一体どれだけの時間がかかるのか。
まずスナップショットを自動的にとって
差分で管理する、Dockerfile相当のものを
作らないといけないんだよ。
やってみ。
お前は「理論的には出来る」ってことしか言ってないじゃないか。 喩え話をしよう。
「自動車という技術を使えば、遠くへ速く移動できます。」
「海を渡れないじゃないか! 俺は島に行きたいんだよ! 自動車なんか使えない」
こういう会話している気分なんだよね。 >>65
> やるならビシっと頼むぜ? これ5回目な
言うの忘れてたw
1万回繰り返したら、教えてあげるよ。
残り9995回な。はい、がんばって! はい、がんばって! 永続的ストレージって意味ならDockerが提供するのはマシンローカルなボリュームをマウントする類の機能だけじゃないの?
永続的データの管理っていう意味なら、今すでにDockerを活用してるようなとこはDB使うような形態が多いんじゃないかな?
EBSみたいなネットワーク上の任意のボリュームを管理してマウントしたいとかみたいなのはDockerの範疇では無いんじゃないかなあ?
その辺を実現するためにはDockerの上に何かさらに被せないと駄目なんじゃないかな >>66-68
>こういう会話している気分なんだよね
結局自分でできもしないのにできるって言ってただけ?w
そりゃ答えられないわな
欺瞞的なホラ吹き野郎よりは、お前がレッテル貼ってたような老害のがマシですわ >>70
なんで俺にこだわってるの?w
できるかできないか知りたいなら調べてたら?
本当に出来ないと思う?
ならなんでみんな使ってるのさ?
Microsoft、Red Hat、IBM等がGoogleのDockerコンテナ管理ツール、Kubernetesサポートで団結
http://jp.techcrunch.com/2014/07/11/20140710google-microsoft-ibm-and-others-collaborate-to-make-managing-docker-containers-easier/
ちなみに俺は前があと9994回聞かないと答えないぜ? >>69
多分こいつは、複数台のサーバーを連携して
システムを作るってことをやったことがないのだと思う。
一台で完結するものだけ。
普通は一台でやろうと思ってもスペックが足りないので
あらゆる単位でわけるよね。
その典型的な例が、データベースサーバーだったり
S3だったりするわけ。
まあ、君には言わなくてもわかってると思うがw >>69
ストレージ周りを簡単に連携してくれるか、
データ専用コンテナを簡単に移行したり管理できるツールがあればと思ってる
それと蛇足だが、DBも集中管理で動的にネットワーク設定を変える場合、
再構成かenvで起動毎に埋め込む(今これ)か、
外のカスタマイズしたツールが必要なのも難がある、
管理ツールが整えば解決しそうだけど未実装が多く辛い
まあdocker自身もまだ成熟しきってない状況で、欲を言ったのが悪かったかもね
>>72
はいはいまたレッテル貼りですか? >>71
あのこれデータ管理の用途でなら
HNで出てたバックアップツールのがまだ使えるんだが…
お前本当に適当にウェブで拾える記事貼ってるだけだな Docker で、dev, staging, production やらの環境作る場合、それらの設定ファイルってどうすんのがふつう?
それぞれ静的ファイル用意して ADD でコピーするんかね >>77
ほうほうありがと。つことは別々のイメージを作るのか。そりゃそうか >>78
違う。
全環境用の設定ファイルをADDする
docker run 時に -e オプションで環境変数渡して、設定を切り替える
docker run -e production /path/to/run みたいに
run スクリプトには環境変数毎の挙動を書いとく
ってやってる >>79
おー、そういうことか!ありがとう
全部放り込むんか。元々Chefユーザーなもんで、templateみたいなのどうするんだろ?って考えてたわ >>80
めんどくさいからスクリプトファイル内で一括で切り替えれるようにしてる
ほんとは一つ一つの設定を環境変数で指定できるように外出するのがお行儀良いかと
例えば各サービスの listen port とか外部ディレクトリのマウントポイントとか。 >>81
その環境変数をもって、設定ファイル生成→サービス起動の流れか
だいぶイメージつかめてきた dockerでデータ永続化する時はどうするのがベターなの?
自分はnfs鯖作って、docker動かすマシンにマウントさせて-vしてるけどこれじゃない感がすごいw やっぱりサーバー用途にdockerって微妙だよなあ
いまいち使い方がわからない >>85
バックアップとるの楽じゃない?
小規模なシステムのサーバーとかには向いてると思うけど。。。 開発環境と使い捨てりゃな継続的テストにはうってつけだろ 使い捨て開発環境ぐらいに留めたほうが良い
OpenVZが要件になった途端、全く使いまわせない事に気づき絶望
悪いことは言わんからChefにしとけ 最近の sshd いれてセットアップとかやろうとする流れと
そうじゃねーだろって流れが面白い
前者は chef とかやってる人なのかな〜。
後者は chef とかでなんかこれじゃない感がある人なのかなと思ってる。
俺は後者。
sshd とかいれて chef とか頑張ってサービスの起動で
init や systemd ではまって docker ディスってるのとか
全部入りイメージで docker 使いましょうとかの記事とか
みてると docker ってそういうもんじゃないだろうって思っちゃう。
俺ん中では docker は daemontools とかに近い。
設定やアプリをある意味スタティックビルドして配布できる daemontools
異論は認める。まだ変わるだろうしみんな頑張れ どうやって儲けるんや
DockerがシリーズCで$40Mを調達、実際に使うのは来年再来年という絶好調の余裕
ttp://jp.techcrunch.com/2014/09/17/20140916dockers-so-hot-it-just-got-40m-it-wont-start-spending-until-next-year/ >>93
redhat google にライセンシーしてるじゃん >>84
上でデータ専用コンテナで文句言ってたやつだけど、
自分は結局、自力でmapper割当する方式でおさまった
今は良さそうなプロジェクトがある
https://github.com/ClusterHQ/flocker
使えるかはわからないので人柱よろw
>>91
その手の話はissueとして挙がった時に、メンテナや開発陣が勝手に決めればいい
ユーザー側で変な風潮作って先入観持つのは駄目だよ
使う側からすれば、目的を達成できれば十分だし、
変なドグマを強要されても気分悪いだけだからさ ちょっと使ってみたけど
自分的には、vagrantでvirtualboxの代わりにdockerを使うぐらいしか使い道がない
という結論に達した >>97
やったことないからわからんが、OS XでもVirtualBox挟むからいけるんやない?boot2dockerみたいなのがあるのかはしらんけど 本番でどう使うかイマイチわかってないけど、環境を人に配るのが軽いってのはいいな 生Dockerfile, Packer + Chef / Puppet, Chef Container, なんかウェブベースのツールと色々あるけど、どれでやってる?
ひとまず Dockerfile で初めてみたけど、Chef の資産があるなら Chef Container かなと思ってるけどまだ試してない なんかいろいろ作って結果、公式のでいいやってなる罠 coreOS が独自のコンテナ(Dockerみたいなの)を作りはじめた
ttps://github.com/coreos/rocket なんとまあ
まあ切磋琢磨は歓迎ですが
ただでさえDockerのバージョンアップに冷や冷やしてるのに、あんま枝分かれされるとおいらみたいなドサンピンにはノウハウ纏めきれなくて困る CoreOS のブログ
ttps://coreos.com/blog/rocket/
途中までしか読んでないが、Docker が太りすぎて最初に思ってたシンプルなのじゃなくなってきて、
Docker container じゃなくて Docker Platform になってしまい…
それが、CoreOS の Unix 的思想と合わなくなってしまった。とかそういうことっぽい
これからコンテナ型が色々出てくんのか??? nsenter だめだめじゃん
arch で pacman がつかえねぇ vagrant pushが予想してる動きになるならDockerやめたい Data volume containerを実際に運用してみた人いる? >>114
しらんかった。いろんなイメージの使用例もホストのマウントばかり例示してたからなぁ と言って、それで作っちまった環境を今更変える気もないわけだが >>111
今ならdocker exec でよくない? >>114
使ってるけど、
・VOLUME指定したディレクトリ配下はデータボリュームコンテナ本体とは別のボリュームになる
・docker commit等ではデータボリュームコンテナ本体部しかimageには含まれない
・ゆえに、docker commit→docker saveとやってもデータは保存されないし取り出せるわけでもない
・結局のところ、VOLUME指定は、ホストの/var/lib/docker/vfs/dir/配下に置かれてるボリュームを
VOLUMEコマンドで指定した名前で、データボリュームコンテナ本体とそれを--volumes-fromで参照するコンテナから
参照できるようになる仕組みでしかない
というのがわかってないと、ハマると思う。
上で、>>31 が「データ専用のコンテナを都度コミットしないといけない」って書いちゃってるけど、
・コンテナ外にデータがあるんでコミットは不要
・コミットしたところでデータはデータコンテナから作ったイメージ上にはないので無意味
なんだよね。 なので、データボリュームコンテナを使って、溜まったデータをどうにかしたい場合は、
・データ吸出し用の使い捨てコンテナから--volumes-fromでデータボリュームコンテナを参照して吸い出す
・データボリュームコンテナ自体にデータ吸出し機能を仕込んでおく
(データボリュームコンテナを起動させたままで使ってるなら
docker exec -it コンテナ名 tar cf - 吸い出し対象 >ホスト側吸い出しファイル名
でいいかもしれない。まあ、普通、データボリュームコンテナを起動させたままにしないだろうけど)
・データボリュームコンテナを参照して起動しているアプリケーションコンテナ上で直接どうにかする
のどれかになると思う。 色々書いたけど、データボリュームコンテナは、
「データを別コンテナにパッケージングする」ものじゃなくて「インフラ部からデータを排除する」テクニックと
考えたほうがいいと思う。
ホスト側の/var/lib/docker/vfs/dir/配下に置かれてるボリュームを
「データボリュームコンテナ名-VOLUME宣言時のパス」で名前付けした形で
扱えるのがキモで、
データボリュームコンテナは名前を貸してるだけで
コンテナ自体でデータを抱えてる訳ではないから。 >>117
はいれた
が、archとdockerの相性が悪いのかpacmanがシグネチャがどーのこーの言われてまともに動かない
docker コンテナの中だと vi もまともに動かないし(C-p,C-n,の動きなどが怪しい 他にも多々ある)、まだまだ不具合だらけだな >>121
多分、
ttps://registry.hub.docker.com/u/base/archlinux/
のイメージ(か、同一方式で構築したもの)を
使ってると思うんだけど、そこのページのコメント部分で色々指摘されてる通り、
イメージ自体がまだ微妙な代物っぽいね。 >>121
ちょっと興味があったんで、手元のWindows上のboot2docker環境で、
docker run -i -t base/archlinux /bin/bash
ってやって
# packman -Syu
# packman -S vi
# vi /etc/fstab
みたいな感じでやってみたけど、とりあえず問題なさそうだったよ。
ああ、キーボードの設定か何かのせいでカーソルキーが効かなかったんで
カーソル移動は昔ながらのhjklでやる羽目になったけど。 docker exec すると 色々と挙動がおかしいの俺だけ?
複数行あるファイルをviで編集しようとすると1行表示しかされなかったりする
nsenterでは問題がないのだが・・・ いくら考えても理由がわからんから教えて。
なんでDockerの中に建てたサーバー(例 ウェブサーバー)に
接続するのに、ポートフォーワーディングするわけ?
ルーティングすればいいじゃん。
参考 docker の VM に向けてルーティング追加すればポートフォワード要らないってのにようやく気がついたメモ
http://qiita.com/woremacx/items/e5542bfa8e96c70346aa
ルーティングの設定すれば、ポートフォーワーディングしなくても
普通にDockerコンテナのIPアドレスに接続できるじゃん?
コンテナ2つ起動して、その両方でウェブサーバーが起動している時でも
普通にそれぞれにIPアドレスに接続するだけでいいじゃん?
いちいちポートしていしなくても。
ルーティングのほうが簡単でわかりやすいのに
なんでポートフォーワーディングするやり方ばっかり書いているわけ? 細かい経緯は知らんが、 --net=host 機能追加するときに
デフォルトはサンドボックスにしてると言ってる
https://blog.docker.com/2014/05/docker-0-11-release-candidate-for-1-0/
あとはドッカートホストのやり取りがカーネルから出ていかないから効率的とかなんとかが、この辺に書いてたな。さらにiptableいじるネタばかりかいてるので、変えたい人は勝手にどうぞとってスタンスと思われる
https://docs.docker.com/articles/networking/
すべての疑問が解決はしてないとは思うがどうだろうか >>126
コンテナとVMを混同してると納得しにくいかも >>127
ファイアウォールと同じでデフォルト閉じてるあつかいなんですかね?
>>128
その説明じゃ納得出来ないな。
もともとコンテナはOpenVZによるVPS等で
昔から使われているわけで。 >>126
boot2docker などの docker on vm on host 前提でホストが1台だけの場合の話でいいのかな?
# 何を前提にするかによって何がわかりやすくて何が正しいかが変わると思う。
boot2docker の場合、172.17.0.0/16 のルーティングを向けると楽だというのはわかる。
ただ、その場合例えば会社の 172.17.0.0/16 などに繋がらなくなるよね。
しかも、VM内だけでなくホストの設定も変更しないとダメだし。
万人向けの設定方法で、わかってない人に予想外の影響が出るような説明は
避けるべきだと思う。
ネットワークがわかってる人なら実際どうにかできるしね。
で、もし docker 全般(docker on Linux host 含む)という話なら
docker を複数ホストで使う場合を想定したらルーティングはありえない。
その場合は、--net=host でホストのNWを見せるかデフォルトのポートフォワーディングになる。
# docker daemon 起動時に IP分けるなどならありだけど、各ホストの設定が大変
どちらにしても、わかってる人は正直どうでもよくって
わかってない人に無難に使ってもらえる設定がポートフォワーディングだから
その紹介が多いだけ。
まぁ、私の予想です。
ただ、VMwareなどは知らないけど、VirtualBox の初期設定が NAT であることなどからも
デフォルト設定や万人向けの解説などは安全側に倒して置くのが普通じゃないですかね。 >>130
なるほど。わかってきたよ。ようするに使い方の違いの問題だ。
俺が今Dockerを使ってやろうとしているのは主に開発の効率化で
各個人専用の独立した開発環境を作りたいから
> ただ、その場合例えば会社の 172.17.0.0/16 などに繋がらなくなるよね。
これとは逆に外が見えたり、外から見えない方が好ましい。
閉じた環境のネットワークの中に軽量なサーバーを複数台、
例えば構成が少し違ったり、アプリのバージョンが違うものを
立てて実験したりしたい時に、いちいちポートフォワーディングの設定を〜
とかをするのが面倒なんだ。
だがDocker社も含めてDockerを使っている人達の多くはインフラ系で開発系ではないのだろう。
(この二つで担当者を分けるのはナンセンスだと俺は思っているが)
だからそういう情報が少ないんだろうな。
Dockerを使って実運用のサーバーを作る時にルーティングがありえないっていうのはわかるよ。
その場合はpipework等を使って任意のIPアドレスを割り振るって話だ。
ただ(開発用に)ルーティングを使った使い方の話が少ない理由がよくわからなかったんだ。 Dockerを使ってる人の多くはプログラマーな場合が多い。
なのでルーティングの知識は無い。
ポートフォワードならローカルからサーバーのMySQLにつなぐとか要件があってそこそこの知識がある。 >>132
1行目と2行目がどう関連してるのかよくわからないな。
今時ならなおのことネットワークに疎いプログラマなんぞ
いないだろうに。 >>132がプログラムに疎いインフラ屋なのだろう。
インフラ屋っていうのは取りあえず動くコードさえ
かければいいので、アプリを作れるレベルにない事が多いからさ。 なんでも屋と分業しているチームの違いじゃね
>>132 は分業しか知らない上に、
ルーティングひとつまともに知らない人ばかりの場所で働いてると
まれによくある話だ
そんな奴らが回収率の高いビジネスに持ってけるわけないので、放っておけば良い DockerってDockefileに書いた順番に
イメージをコミットしていくだろう?
その時、Dockerfileの上のほうを修正すると
その下のコマンドを全部再実行することになる。
その時間を節約するには、Dockerfileは常に追記していくことになる。
でもそうするとDockerfileが見づらくなる。
だからといって並び替えると、コマンドを再実行することになって時間がかかる。
このジレンマどうにかならないもんかね。 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を使った起動方法が存在しないなら直接起動するしか無いけど、
普通のディストリ使ってるなら普通に起動したほうが楽だと思う。 Redhat Enterprise Linux 6.6でDockerを動作させようとしたのですが、
dockerサービスを起動すると、ログに
kernelを3.8.0にアップグレードしろと出て動作しません。
kernel2.6のままで、
Dockerを動作させる方法はないでしょうか? RH純正のrpmなら、動作するのでは?
動かないなら、RHEL v7.1で試した方がいいかと。
#6系よりもkernelのバージョンは上だし、Dockerの正式サポートがされているし > v7.1 >>139
RHEL7系はアーキテクチャが大きく変わって枯れていないので、
運用管理者が嫌がっているのです。
昨年12月位にCentOS6.6でDockerを試した時は動いたので、
RHEL6.6でも大丈夫かと思ったのですが。
今はCentOS6.6でもDockerは動作しないようです。
GitLabやDockerHub,Mavenリポジトリ,Jenkins,Sourceスタティックチェックサービス
など最新の開発サービスを、コンテナで分けて管理しようと思ったのですが
まだ共通に使われるサービスに、Dockerを利用するのは時期尚早みたいですね。 Atomic Host もリリースされたし、硬くdockerを運用したいなら、RHELはいいディストリビューションだと思いますけどね〜
枯れてないことを言い訳にしても、新しい仕組みであるdockerを活用できるとは思えない… >>142
EPELのdocker-io?それとも、別のパッケージ? >>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でできるんじゃないかな? もう少しまともに使えるようになってから使えばいいのだ
慌てるなんちゃらは稼ぎが悪い あれよあれよという間に Docket が肥大してしまったので、
もっと軽量でコンパクトなコンテナ実装が出るのを期待してる。 Dockerの周辺技術が増えただけで
別にDocker自体は肥大化してないと思うけどね。
どうせどんな技術も
肥大化 → 機能を限定した軽いもの登場 → それもバージョンアップで肥大化
の流れになってるしw
結局、軽いものっていうのは、当初は機能が少ないから軽いだけで
どちらにしろ肥大化の道をたどる。 Docker がシンプルじゃなくなってるから coreOS が Rocket 作ったんじゃないっけ? >>151
Dockerも反論してるよ。
両方読んで思ったのが、どっちもこの業界で
勝利者になりたいって考えてるんだろうなってこと。
CoreOSが主張している「Dockerが肥大化している」は正しくないと思う。
ただしDockerがオーケストレーションとか周辺技術にまで手を出しているから、
CoreOSが本当に懸念しているのは周辺技術の方だろう。CoreOSもその分野だし。
Dockerがコンテナから始まって周辺技術に手を出しているのと反対に
CoreOSは周辺技術から始まってコンテナに手を出している。
スタート地点が逆なだけで、両者がやろうとしていることは同じだと思うよ。
評価するのは正式版になってからだろうね。初期の段階がシンプルなのは当たり前なので
十分な機能を持った時にシンプルさを保てているかどうかが重要。 docker stopが固まる事がある。
CTRL Cで止めると、docker killばできず、docker rm -fもできない状態となるが、docker psで実行中の状態のまま。
dockerデーモンを止めて、コンテナのディレクターを手で削除して、dockerデーモンを止めると回復する。
dockerデーモンを止めずに、回復する方法はないだろうか? >>154
Boot2Docker使ってるでしょ?
それBoot2Dockerのバグだから。
TinyCoreLinuxの問題かもだけど。
普通に仮想マシンにUbuntuとか入れてやれば安定するよ。
止まらないことなんて一回も起きてない。
そもそもDockerしか入ってなくて、まともにCLI使えない
貧弱なBoot2Dockerは使いづらいだけ。さっさと捨てた方がいい。 >>155
仮想OSでなく、
xeonの物理サーバーにCentOS6.6を入れてdocker-ioの1.4.1-3.el6で使ってます。
終了処理が10秒以上かかる
いろいろ調べた所、docker1.4のバグらしく、1.5だと直っているらしい。
1.5はまだ公式のepelリポジトリに入っていないので待ってみます。 1.6がでたのに、公式とか言ってるのは可愛そうだなw
まあLinuxディストリシステムの欠点とも言えるが、
そんなのに頼らないで、本当に欲しいものは
公式サイトからインストールした方がいい。 1.5と何が変わったのかというか、ブログっぽく書いてたページってトップから行けなかったっけ?
久しぶりだからよくわからなくなった >>159
すまんな完全に耄碌してた
結局、windowsで動かすdockerはvmwareでcolinuxじゃないということかなぁ
あと、リソースのリミットやcgroupはより実利用に向けてだね。あとは、レジストリのメモリサイズ減っててほしいな減ってたら使いたい
何よりもラベル助かる。というか必須にしようや
と、食いつきにくい餌をばらまく >>157
公式から実行ファイル落としてきて差し替えるだけでアップデートできるしねえ > 結局、windowsで動かすdockerはvmwareでcolinuxじゃないということかなぁ
誰か解読してくれ >>161
Windowsを使うなっていうことだよ。 >>164
それをいうのならMacOSXもじゃね?
Docker動かんし。 >>162
colinuxは仮想マシンじゃないってことじゃないの? ああ、「Winだと仮想経由になっちゃってコンテナとは言い難いな」ってことか?
それ踏まえて読み直すとやっと腑に落ちた
しかし読解レベルで食いつきにくいのは勘弁してもらいたいなw とはいえコンテナが増えてくるとVMでモジュール化しないと管理しきれなくなる モジュール化するのはいいが、
なんでVMでなんだ?
もっと軽いものでモジュール化しろよ >>170
それがコンテナ(プロセス)のグループ化って考え方なんだろうけどね。
ようするのpsコマンドの表示の仕方が悪いって話でしょ?
psした時に、特定のグループは一つにまとまって見れて
そのグループ単位で起動とか停止できればいいんでしょ?
複数のコンテナをまとめて管理するなら、docker-composeが使えるし
イメージやコンテナにラベルが付けられるようになったから
自分でコマンド作ればいい。
最終的にはsystemdと連携してプロセスグループとして管理される。
これが現在進行中の流れだよ。
今すぐ使いたかったら、
GoogleのKubernetes等のコンテナ管理ツールを使えば良い >>171-172
実行状態もだけどコンテナ間通信のためのポート構成のカプセル化が目的
今度試してみる >>173
コンテナ間の通信であればポートを気にすることはない。
普通にコンテナ間でIPアドレス指定してアクセスできる。
ポートを気にするのはコンテナの外から
アクセスする部分だけ。 どっかの馬鹿がDockerに関しての話題をここじゃなくて、
こっちでやれって言ったからこっちに書いてるよ。
興味があったらどうぞ
プログラムに詳しくなりたい
http://peace.2ch.net/test/read.cgi/tech/1346595505/ 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
なんですの?これ >>179
たぶんnsenterがゲストのCentOS7でsystemctl使えるようにする魔法の言葉だと思うんだけど
なにしてるの、これ?
(ちなみに-p 80:80はいらなかったのかも知れないがとりあえず入れただけ) 普通に、CentOSを起動した時に動くデーモンを全部起動してるだけ。
必要なものだけに厳選するなら、supervisordとか他の手段を使ったほうが良いと思う。 これを会社のシステムに使おうとしてる俺の会社って狂ってるよね
社内にLinuxに精通した奴なんておらんし >>181
ありがと、
とりあえず/sbin/initでコンテナ上げとけばsystemctlが使えるようになるから
あとはnsenterとかsupervisordやらでコンテナのshに入ればいいってことなのかな? >>182
Dockerを使おうって会社っていうとNTTデータ?IBM?
大きな会社だね。 >>183
今のコンテナに入る方法はdocker execだよ。
nsenterとか使わない。
あとコンテナの中でsystemdも使わない。
そもそも使い方が間違っていて
コンテナは仮想マシンじゃない。
コンテナは原則として一つのアプリを動かすもの。
その一つのアプリを動かすのに必要なものを
固めたのがコンテナ。
動かすのは一つのアプリだけなのだからsystemdもいらない。 >>185
なるほどハイパーバイザーみたいに使うのは違うんか
VPS借りてさらにその上で仮想化したくて
KVMはQEMUしか動かなくて糞遅く、VBは32bitしか使えず、
Dockerもsystemd使えなくて駄目かと思っていたら使えてウハウハしてしまった >>185
最初はdocker execでCentOS7コンテナの/bash/shに入ったらsystemctl使えなくて
ホストのUbuntu14.04自体に無いからかな?と14.10に上げてsystemctlあるなと思ったが駄目で
インターネッツ探したらnsenterでごにょごにょ書いていたからやってみたら出来たっていきさつです 何を動かしたいんだ?。
webserverか?。
開発環境?。 >>188
Clamdscanを動かしたよ、試験で これってWindowsでいうApp-Vみたいなもん? >>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使う必要もないってわけ。 仮想マシンの使い方だと、マシンを新たに作って
OSのインストールを終わらす。そこまでが仮想マシンを作る段階で、
それから、よーしこれからアプリケーションをインストールするぞーって
考え方だと思うけど、
Dockerの場合、アプリケーションが使えるようにする所までが一連の作業になる。
Dockerfileに定義した内容に従って、すぐに使えるDockerイメージを作る。
そのイメージを共有することで、
あ、あのアプリ使いたいな。って思った時にyumやapt-getでインストールする代わりに、
イメージをpullしてきてそれを起動する。
(Dockerイメージを起動して作られるのがDockerコンテナ、実行ファイルと起動したプロセスのような関係)
Dockerコンテナの中にはアプリを動かすため必要なカーネル以外のすべてのものが
含まれているから、Dockerさえ動く環境があれば、すぐにアプリが使えるようになる。
ちなみに、CentOSとかUbuntuの違いというのは
* カーネル + CentOS独自のパッケージと設定
* カーネル + Ubuntu独自のパッケージと設定
であるため、Dockerコンテナにはカーネル以外のすべての部分が含まれているということは
ホストOSがCentOSであっても、Ubuntuベースで作られたコンテナが使えるということ。
カーネル部分は多少のバージョンの差があるにしろ同じものだからね。 >>186
>VPS借りてさらにその上で仮想化したくて
>KVMはQEMUしか動かなくて糞遅く、VBは32bitしか使えず、
そういう用途だとLXCそのまま使うのが良いかもよ
http://knowledge.sakura.ad.jp/tech/2108/ >>194
そうなの?結構前だけどLXC使おう思ったが面倒そうでOpenVZに逃げたんだがw
(その時はホストがCentOSだったから面倒だった気もするけど)
今やDockerでまとまってウハウハ そうか?。CoreOSと喧嘩したり、色々きな臭い感じじゃん。 CRIU使ってマイグレーション辺り、やってる人いる? >>193
お前まだそんな事言ってるのか
Dockerは小さな単位の仮想環境だよ >>199
理由書かないと何の説得力もないよ。
仮想環境と書いているが曖昧で、俺が言ってるのは
アプリを仮想化したものだと言ってる。
Dockerで作るのは仮想マシンではない。
この二つをごっちゃにすると、
仮想マシンの中でDockerを作るのは意味が無い。などと勘違いしてしまう。
仮想マシンの中であっても、アプリをインストールして起動する。
Dockerを使うと、このアプリのインストールと起動が簡単になる。
使い方が全く違うんだよ。 アプリを特定の環境 (/usr/lib/libなんちゃらの特定のバージョンがある、など) で動かすための仕組みが仮想環境じゃねーの?
仮想環境をポイっと用意されたらその中で案件毎に複数のアプリをインストールしたりして、
ただ単に分離されたフルのOS環境として使うのが従来の仮想化の一般的な使い方だったけど、
KVMやESX, Hyper-Vなんかよりcgroup/namespace使ったコンテナはとっても軽いので
特定の仮想環境と特定のアプリ(nginx)をワンパッケージとして管理したら良いんじゃない?
ってことで出て来たのがDockerってことと思ってるが >>201
仮想環境と言われると曖昧だが、
仮想マシンではないということ。
> 仮想環境をポイっと用意されたらその中で案件毎に複数のアプリをインストールしたりして、
「複数のアプリをインストールしたりして」の部分ね。
これがDockerコンテナ化された複数のアプリに変わる。
仮想マシンの中に複数アプリを入れると言っても、
そのアプリには設定が必要。何も設定しないでもいいアプリはあまりない。
つまりアプリのインストールというのは面倒な作業といえる。
それを軽減するためにChefなどのツールを使ったり、
AmazonのAMI(仮想マシンイメージ)を作ったりするが、
それは、アプリとアプリの依存関係を定義しているようなもので、
【「仮想マシンの中に入れる複数のアプリ」で構成されたもの】を作ることになる。
言い換えると、アプリの設定 と アプリ間の連携の設定が結びついてしまう。
Dockerコンテナの場合、単体のアプリを作るものだから、アプリのみの設定を行う。
そのアプリの連携はDockerコンテナの起動オプション(またはdocker-compose等)で行う
だから軽いっていうのもあるけど、新しいアプリのインストール・デプロイの方法なんだよ。
Dockerを導入した場合、仮想マシンというのはマシンスペックを増やすために作るもので、
その中で動かすアプリは柔軟に変更できる。
今のサービスは複数のアプリで構成されるのは普通だけど、その構成を決め打ちで定義してしまうものではなく、
Dockerコンテナで設定済みのアプリを作っておき、そのアプリの配置を好きに変更できる。
1仮想マシン、1アプリでもいいし、ハイスペックな1仮想マシンで全アプリにするのも自由自在 >>203
ニュアンスの違い程度な気もするけど、
俺が言ってることを正確に表現するなら、
OSをアプリに内包するってこと。
(カーネル以外の)OSがアプリの一部になる。
Windowsで言えば、C:\Windows以下にある各種DLL全てを
アプリのディレクトリに入れたようなものかな。
メインはアプリであって、OSを使っているわけじゃないので。 オブジェクト指向信者みたいな奴だな
ただの軽量な仮想環境なんだから、使いたいように使えばいいだろ パフォーマンスチューニング考えると複数のアプリを1つのコンテナにまとめた方が良い、という話もあるしな パフォーマンス的にも専用OSにDocker載せたほうが軽い >>205
いや、軽いだけの仮想マシンとして考えると使いづらいところが多いんだよ。
間違ってそう考えたがゆえにDockerは使えないと判断する人もいるしね。
違うものとして考えないと。
>>206
例えばSQLiteというデータベースライブラリ(サーバーではなくて)があるけど
これと同じようにデータベースをアプリに内蔵するという考え方で
MySQLを一つのアプリに内蔵するというやり方はある。
でもパフォーマンスチューニングという点で、一つのコンテナに
まとめたほうが良いという意見は聞かないな。どこで聞いたの?
>>207
さすがに物理マシンでそのまま動かしたほうが速いでしょw
もちろん仮想マシンよりかは速いけどさ。 コンテナ内のチューニングは面倒だな
環境でころころ変わって統一的にコンテナを扱えなくなるのはうまくない > 環境でころころ変わって統一的にコンテナを扱えなくなるのはうまくない
具体的に言うと、何がダメなの? 一部の環境でのみバグったり劣化したりするリスクが増える 具体的にどの環境でのみバグった?
普通のアプリであれば、アプリ以外の部分、
つまりカーネル、OS、libc等の基本的な
ライブラリ、アプリの言語のバージョン、
その言語用のライブラリと依存するものが多い。
OSのアップグレードなんかしたら、それらが
変わってしまうから、一部の環境のみでバグったりするね?
でもDockerコンテナ化すれば、アプリにアプリが適切に
動く環境そのものを同梱できるから、
アプリ以外の部分は、カーネルのみになる。
だから一部の環境のみでバグるということが少ないはずなんだが?
もう少し、具体的な事例が聞きたいね。 dockerコマンド自体にバージョン違いがあるのだから、
管理側が2つを操作するよりは、1つをまとめておいた方がいい場合もあるやろ
面倒なやっちゃなー… >>214
ホストOS上で、二つのアプリを操作するのが面倒だってこと?
何を言っているのかよくわからない。 >>212
しばらく待ってみましたが、やはりそんなリスクは
想像だけのもので、具体例は出せないようですね。 >>214
こちらも結局説明なしのようですね。
想像で言ってみたけど外れてたという類 >>217
オプション指定一つとってもバージョン違いあるやろ
外れてるのはお前の頭のネジやで >>218
そっちじゃない。
> 管理側が2つを操作するよりは、1つをまとめておいた方が
これが意味不明という話 >>220
「chrootの機能を継承した技術」を使いやすい形に統合したものかな。
知っているとは思うけど、chrootは単に
プロセスから見えるルートディレクトリを変更しただけ。
それを更に発展させてルートディレクトリだけではなく
プロセスやネットワークも分離させて、プロセスに対して
そのプロセスに独立した環境を作り出すのがコンテナ(LXC等)
ちなみに古いバージョンのDockerはLXCを利用していた。
今はlibcontainerを使ってカーネルのコンテナAPIを直接呼び出している
でDockerはそのカーネル提供しているコンテナAPIを応用して作られたソフトウェア
コンテナのビルド(作成)とその実行を行うための環境を提供している。
コンテナAPI自体は昔からあったわけだが、従来は使うためのツールが不足していて大変だった。
Dockerを使うとDockerfileというテキストファイルを用意することでコンテナイメージを
簡単に作成でき、コンテナが利用するリソース(CPU、メモリ、メットワーク)を
コマンドライン等で指定しつつ簡単に起動や停止が行えるようになる。 chroot+jailの発展形という説明があったな >>221
昔流行りかけたXenみたいな感じでいいのかね?
コンテナイメージってファイル群じゃなくてでかい単一ファイル? >>223
Xenはマイクロソフトに魂売ってHyper-Vでしょ?wハイパーバイザー部類だしょ?
コンテナは単一じゃなくてホストの1プロセスでは? >>223
> 昔流行りかけたXenみたいな感じでいいのかね
ぜんぜん違う
chrootを知っていて、なんでそう勘違いするのかよくわからんが、
同じカーネルで動く1プロセスのルートディレクトリと
プロセス空間その他を隔離しただけ。
違いの一例を上げるとXenもKVMも仮想マシンを作るから
仮想的なハードウェアの一つとして仮想ディスクも必要になる。
だけどDockerはchrootと同じようにルートディレクトリを変えるだけだから
カーネルから認識されている同じディスクを使用する。
Dockerのコンテナはカーネルから見れば、単なる1アプリにすぎない。
> コンテナイメージってファイル群じゃなくてでかい単一ファイル?
chrootと同じようにファイル群。
1つのイメージは複数のレイヤーから構成されレイヤーにはファイルシステムの差分が記録される
1つのレイヤー = 1つのディレクトリ、通常イメージの最初のレイヤーにはchrootと同じく
OSのシステムファイルのほぼ全てが、次のレイヤーには差分だけが記録される。
このレイヤーはコンテナイメージの修正時に再利用/共有されるため、時間とディスクの節約になる。 訂正
× レイヤーにはファイルシステムの差分が記録される
○ レイヤーにはファイル単位で差分が記録される
別にディスクイメージが記録されてるわけじゃない。
レイヤー=ディレクトリに普通にファイルがある
こういう仕組みを提供しているのが
Dockerなわけだね。 >>225
ネットワークってどうやって別空間にしてるの?
chrootのときはしかたないからエイリアス使ってたけど
あとchrootのときみたいにやたらマウントポイント汚す? chrootが謎の技術で/dev,/procを別物にした上で
上にaufsみたいなのが被さってるイメージでいいの? k8sを使うと同一ホスト上の複数のコンテナに同じポートを割り当てられるんでしょうか? Dockerで同じイメージを冗長化のために
A,B、2台のプライベートレジストリにpushしたとします。
Dockerfileでベースイメージを指定する時、
Dockerfileを書き換えずに、ベースイメージを取得する
プライベートレジストリのサーバーを変更する方法ありますか?
ただし2台のプライベートレジストリ(サーバー)はホスト名が異なり
DNSの変更は行わないものとします。
ぶっちゃけDockerfileのFROMに
プライベートレジストリのURLを含めることが気持ち悪いです。 >>227
ネットワークは、コンテナ接続用の仮想ブリッジがホストに作られてそこに接続される
ホストの外とコンテナとの通信は、ポートフォワードでできる
設定次第ではこれ以外の構成も可能だが、コンテナのメリットがなくなる場合もあり DockerfileにVolumeを記載したときの動作がわからないです。
これを記載すると、docker run したときに-vのオプションをつけたときと同じ動作をするのでしょうか? >>233
いいえ。DockerfileのVOLUMEは単にディレクトリを作るだけと考えてください。
例えばmountコマンドで/mnt/hoge/にマウントしようと思ってもできません。
先にマウントポイントとなる/mnt/hoge/ディレクトリを作成しておく必要があります。
VOLUMEは、-vオプションでマウントするためのディレクトリ作成するだけです。 >>234
なるほど。
そういう用途なんですね。
理解しました。 なんかWS2016TP3のイメージダウンロードで失敗して
Docker起動すらできないのだが・・・ docker インスコしたら、なぜかgitがアンインスコされてマジギレなんだが
docker作者いたらぶん殴ってやりてえわ
何考えてるんだ基地害、マジで死ね ちなWinだが
嫌がらせなのか
gitconfigも消えやがった
マジで損害賠償モンだぞゴミ野郎が
何なんだマジで、インストーラーに選択肢にも出てなかったgitの文字が出てきて嫌な予感がしたが
まさかアンインスコしてわけわからんgitもどきのゴミぶちこまれるとは
スパイウェアかよ、ありえない 1時間無駄にした
俺様の睡眠時間削るとは何様だよゴミの分際で
マジで死ね、勝手に人様の環境のgit削除して入れ直すとかどう考えても頭イカレてんだろ基地害
頭にウンコでもつまってるのかこのゴミみたいなインストら−作ったゴミ屑は
ISISに爆殺されて死ねや ※実際には消えたのではなくて、追加で新しくmsys環境がインストールされ
パスが変わっただけである。 コンテナ起動して一個だけコマンド実行して終わったら
コンテナさよならってのはできませんか? 手動でgccのAndroid向けクロスコンパイル環境を作ろうとしてるんだけど、もううまくいかないやー
Dockerにその用途に向いたコンテナないかな? Dockerは
1. 可能か不可能か・・・可能だ
2. 以前より簡単にできる ・・・ YES
3. 簡単にできる ・・・ NO
4. ハマる・・・YES
だからなw え、Androidビルド環境なんかで悩むところあるか? >>249
Makefileが手書きのLinux向けフリーウエアをビルドしようとしていて、Makefileをいじっても環境変数をいじってもなかなか通らなくてね
ちゃんと自分でMakefileを修正できていないのが原因なんだろうけど、他も自信がないから環境が整ってるところでやってみたいかな >>246
よかったらヒント教えていただけると助かります
もし自分で辿りつけたらフィードバックしますね 「docker 起動」
「docker 停止 削除」で検索! シェルスクリプトにdocker runとdocker rm書けばいいだけだろ 単一のコマンドをコンテナで実行するだけならLXCでいいじゃん >>254
> 単一のコマンドをコンテナで実行するだけならLXCでいいじゃん
めんどくせーだろw
dockerはパッケージでインストールするとして、インストールだけが終わった状態から、
たったこれだけで単一のコマンドをコンテナで実行できるんだぞw
docker run debian /bin/bash --version
もちろんdebianの所を変えれば、その他のコンテナで実行できる。
LXCで同じことをやってみてくださいよw docker使おうとしてdocker run コンテナ
ってやってもsyntax errorとか出て何一つ動かない
試したのはfedora,ubuntu,busybox,gccあたり
環境はFedora23 i686
XeleronM410 メモリ512MB command not foundではなく、syntax errorとでるのなら、
dockerはインストールされているのだろう?
docker --versionってやってみて。 Docker version 1.8.2-fc23, build 1a57647-dirty
ダウンロードとかは普通にできるんだけどいざ動かそうとするとうんともすんとも言わない
エラーはこんな感じ
exec format error
Error response from daemon: Cannot start container 602972c2cf599bd4702de17c25e64d7608fbc7fbc74c128ca789baad53e0852b: [8] System error: exec format error Docker hubでよくわからんのだけど、
公式でないものは、危険な可能性があるってことでいいの?
AUTOMATED BUILDに関しては、リポジトリが表示されているから
おそらく大丈夫なのだろうと思うけど(でも工夫すれば抜け道ありそう・・・)
そうでないものは、どのDockerfileから生成したか?の情報ないよね? 追記、AUTOMATED BUILDの抜け道思いついた。
ソースリポジトリは表示されているけど、
タグを複数つけた時、Dockerfileは何故か一つしか表示されてないみたい。
これを利用すると別のディレクトリで作って、
あたかもこれで作ったみたいな見せ方ができそう。 >>264
例えばMySQLを高度に最適化したイメージを作った
ふりをして、データを抜くコンテナを作るとか Dockerの使い方を勉強したいんだけど
どこのサイトを見ても、docker.ioをインストールした後から
の手順が急にぼんやりした説明になっている
xeyesをdocker上で動かすとか
そういう分かりやすいサンプルはないの? docker pull ubuntu
docker run -i -t ubuntu /bin/bash
切り替わったらaptでもつかって好きにいじればいい
量産したかったらそのコンテナを登録して増やす なんかまたDockerを仮想マシンと考えてる奴ができてそうだな。 コンテナをLinux仮想マシン扱いすること自体はいいんでない。意外とそういうところから面白い使い道が発見されるのかもよ コンテナを仮想マシンとして使うのは、OpenVZが昔からあるから
それを使えばいいんだよ。
DockerはOpenVZではないものとして作られているんだから、
OpenVZ的な使い方をするには合わない。 >>266
docker xeyesでググればxeyesをつかったサンプルがいくつかあるが。
それじゃ不満? キーワードまで教えてもらってぐぐれないなんてことないだろ xeyesをdocker上で動かす方法のググり方を教えて下さい
↓
docker xeyes でぐぐる
↓
ありがとうございました。 無料のLinuxで32bit対応が欲しいという理由は
ハードウェアが対応してないからだと思うが、
新しいパソコンを買ったほうが良いと思うよ。
OSなしでいいんだから3千円台+送料ぐらいから買える
http://kakaku.com/used/pc/ca=0010/?s2=10 わざわざ32bit限定でdockerが必要なケースがあるのか? 仕事でそれしか支給されてないとかw
流石にそんな会社はないか >>280
hostapdでWiFiAP使えないと困るからノートになるじゃん
でノートで3000円だと2007年くらいのになってi686しかつかえない
>>281
俺の鯖で動かない
大学受かったら新しい鯖買う予定だけどそれまでは無理
WiFiは〜Piにして鯖と分ければいいんだろうけどね >>283
家かなんかでサーバー機として常時稼働させていればいい
あんたが今使っているノートからログインして使うんだよ。 >>284
ちがう
自宅の常時稼働鯖がノートじゃないとアクセスポイントにできないって話
で金もない あとレンタルサーバーでVPSを借りるって手もあるな。
だが大学入試があるなら、遊んでないで勉強しとけ。 >>286
すいませんね勉強に戻ります
カナダに一回払いで買った鯖あるけどローカルでも動かしたい時があるのよ >>285
だからなんだ?と思うだけだが、
新しくPC買って、そのノートから直結するなり
ハブ経由で接続すればよかろう? ラズパイでdockerとかアリでしょ?
環境ぶった切ったり
IP毎にサービス割振りしてるよ
OH少なくて助かってる へー、ラズパイでDocker動いたのか。
ARMだからパッケージ少ないし対応してないと思ってたよ。
基本技術はコンテナだからOSレベルで対応してるのかな。
http://dev.classmethod.jp/hardware/docker-on-raspberry-pi2/
> 結論から言うと動きます。が、実用的ではないです。それは、
> DockerコンテナはDockerホストと同じCPUアーキテクチャでないと動作しないからです docker はchrootみたいなものなの?
docker動いている最中に ホストからファイル見れたりする? ググれば全部出てるぞ
日本語訳されてるであろうArchwikiでも読んでこい OS イメージをベースにして Docker コンテナを作るメリットって、
ホストOS に縛られずにコンテナを配置できるって理解であってる?
ただ、サーバーのメモリやストレージの節約を考えると
ホスト OS は決め打ちにして、コンテナには OS イメージを含めない方がいいと思うけどどうなの?
実際の運用でもサーバーごとに OS やバージョンが異なるなんてことはないはずだしね。 ごめんなさい。すぞい勘違いをしていました。
DockerHub に登録されてる Dockerfile を見ていて気がついたのですが、
Docker イメージは、基本的に何らかの OS イメージをベースにして作るんですね。
FROM scratch となってるものもいくつかありましたが、
FROM を遡っていくとほとんどが何らかの OS イメージをベースにしていました。 OSのイメージはDebianで100MBを切る。
Alpine Linuxならわずか5MBだ
コンテナは仮想マシンじゃない。だからホストOSのカーネルを使用する。
コンテナで起動したアプリ以外の、各種デーモンも起動しない。
だからメモリ使用量もアプリを直接動かすのと大差ない。
つまりサーバーのメモリやストレージの節約は考える必要が無い。
実際の運用ではサーバーごとに OS やバージョンが異なる。
アップデートをすることで日々更新され続けるからだ。
LinuxのLTS(長期サポート)なんて5年しかない >>293
ホストに縛られないというかコンテナをコピーするだけでそのまま実行環境を別のホストに移せる
あと1つのホストに複数の実行環境を構築できる
これらは従来のVMでも出来ることだけどまるまる1台分を仮想化するのと違ってリソースをより効率よく使うことができる Dockerを仮想マシンの一種として考えてしまうとインフラよりの発想となってしまう。
これではDockerがもてはやされている理由を理解できない。
Dockerはアプリ開発者の立場で考えるとわかる。
まず(ホスト)OSのアップデートで勝手にライブラリのバージョンが
変わってしまうと困る。例えばRubyのライブラリを勝手に
アップデートされたらアプリが動かなくなる可能性がある。
また、逆にディストリが提供しているパッケージよりも新しいバージョンの
ライブラリを使いたいこともある。1つのホストに複数のアプリを実行する時
アプリごとに使うバージョンを変えたいこともある。
だからアプリ開発者はディストリのパッケージでインストールするライブラリは使わない。
rbenvなどを使ってアプリの一部としてアプリごとにインストールする。
(注 Dockerを使えばrbenvを使う必要はない)
これはRubyライブラリだけの話に限らない。ネイティブライブラリやCLIコマンドなど
アプリから使用するあらゆるものはアプリ独自に入れたい。
アプリはアプリだけで動くのではない。動的リンクライブラリやCLIコマンドまで含めて
1つの動作するアプリとして完全体となる。つまりアプリとアプリを正しく動かすのに
必要なものを含めた完全体がコンテナ。コンテナさえあればアプリは完全に動くので、
ホストOSはDockerさえ動けば良くなる。
これがDockerを使う目的なのだから、その目的を達成できない方法はそもそも代替案にはならない。
ホストOSのリソースの効率化とかそういう話じゃないんだよ。 >>295
ただ、DockerHub で配布されてる centos:6.7 に
yum install git すると image size が 190.6 MB → 323.3 MB
yum groupinstall "Development Tools" などとすると image size が 190.6 MB → 693.9 MB
となり、やはりストレージは食うのかなと。
根本的に使い方が間違っているのかもしれませんが、
通常は git とか コンパイラはコンテナに含めないのでしょうか? >>297
> アプリはアプリだけで動くのではない。動的リンクライブラリやCLIコマンドまで含めて
> 1つの動作するアプリとして完全体となる。つまりアプリとアプリを正しく動かすのに
> 必要なものを含めた完全体がコンテナ。
なるほど参考になります。
コンテナ =
Ruby で言うところの( 例にあげて頂いた rbenv というよりは)bundler とか、
Node.js の npm (のローカルインストール) の延長で、
OS のストレージにあるものすべて(動的リンクライブラリやCLIコマンドなども含む)を
1つのアプリ環境としてパッケージできるもの
という理解で落ち着きました。 >>298
> 通常は git とか コンパイラはコンテナに含めないのでしょうか?
含めない。
もちろんコンテナイメージ作成中は適当にやっていいし、
利便性を考えて入れておくのもありだけど、
例えばgitを使ってソースコードを配置したいなら、
RUN apt-get install git & git clone 〜 & apt-get remove git (例なので適当)
のようにしてgitを入れて必要な処理が終わったら削除する。
(注 1つのRUNでインストールとアンインストールを実行すること。
複数に分けると、それぞれで中間イメージが保存されるのでサイズが減らない) > RUN apt-get install git & git clone 〜 & apt-get remove git (例なので適当)
> のようにしてgitを入れて必要な処理が終わったら削除する。
>(注 1つのRUNでインストールとアンインストールを実行すること。
> 複数に分けると、それぞれで中間イメージが保存されるのでサイズが減らない)
確かにおっしゃる通りになりましたが、「複数に分けると〜」のところは
なぜサイズが変わらないのかいまいち理解できません。 都度gitインストールってapt転送分の無駄を感じるな。gitならまだいいけどそれにしても美しくない
ローカル制御細かくやるしかないか だからapt用のキャッシュプロキシというものがあって
だけどその環境依存の設定をDockerfileに書きたくないから
ビルド時にオプションで環境変数を使えるようにしてくれって
話がついて1.9からサポートされた Docker の質問というより、ヴァーチャルマシンに関する質問だと思うんですが質問させてください。
Windows で Docker から環境を作ったのはいいんですけど、
そのなかのソースコードとかって Windows からアクセスできないんですかね?
いまひとつ開発のスタイルがよくわかりません。
まさかとは思いますが、仮想環境の中にIDEをインストールしてそこで開発とかでしょうか?
よろしくお願いします。 >>306
Dockerの中で動かしつつアプリを開発するのはやめたほうがいいよ。
デバッグ用のツールなど使いづらくなって、単に面倒になるだけ。
Docker使わずに作られたアプリ。それを動かす環境を作る時に
Dockerを使うってだけにした方がいい。
もう少し詳細に説明すると、まずWindows(boot2docker)で考えるとややこしくなるので、
ホストOSにLinuxを使っていると仮定する。
開発はDockerを使わない。IDEはLinuxにインストールする。
これだと何も複雑なことはないよね?これをメインの開発環境とする方がいい。
開発時にはDockerを使わないといったけど、テストを実行すときとか実機でDockerを使うとして、
リリース時とできるだけ同じ状態にしたいとかDockerの中だけで発生する問題とか、
開発時にDockerを使いたい時もある。
そういう時は、ソースコードのディレクトリをData volume(dockerの-vオプション)で
コンテナ内にマウントする。ビルドが必要な物(scssからcssへの変換等)は
Dockerの外でビルドしてそのディレクトリをマウントする。
ただしビルドで生成するものがバイナリ実行ファイル等の場合は、ホストOSとDockerコンテナで
使うOSが違いすぎると動かない可能性があるので、Dockerコンテナでビルドする必要がある。
本来Dockerコンテナにはビルドツール等は入れるものではない。本来はビルドするときは
>>300で書いたようにビルドツールを入れてビルドしてビルドツールを消すことになる。
apt用のキャッシュプロキシでパッケージのダウンロードは避けられるとはいえ、
ビルドのたびにパッケージのインストールとか時間的にやってなれないので、
(実行用のDockerイメージとは別の)ビルドをするためのDockerイメージを作る必要がある。
な? Dockerを開発時に使うことは出来なくはないし、テスト実行のために出来たほうがいいんだけど
面倒で手間がかかる。だから通常の開発はホストOSでやった方がいいんだ。
ホストOSがWindowsの場合は、vagrantで作ったLinuxで開発するのをおすすめする。 話をWindowsに戻すと、おそらくDocker Toolbox(に含まれるboot2docker仮想マシン)か
boot2dockerを使ってるだろう。これはVirtualboxの仮想イメージなので更にややこしいw
俺としてはvagrantで作ったLinuxで開発するのをおすすめする。
Linuxで開発すると言ってもCLIコマンドを実行する程度。
samba使ってファイル共有すれば、ソースコードの修正はWindowsのエディタが使える。
Windowsに入れたIDEを使う場合は、デバッグ機能に多少制限が出るかもしれないので
俺はやってないけど、XクライアントをWindowsに入れて、Linux用のIDEを
使うとかのほうがいいかもしれない。
で、結局の所、開発時にはDocker使わない方がいいので、Windowsで
開発したいなら今までどおりDocker関係なく、Windowsで開発すればいい。
そしてWindowsで開発したアプリをDockerで動かしたい場合だけど、
boot2dockerの中は結局のところLinuxなので>>307の話が通用するとして、
問題はWindowsのソースコードをどうやってboot2dockerから参照するか?
一番簡単なのは、Virtualboxの共有フォルダー機能を使う方法だろう。
(ぶっちゃけboot2docker使ってないのでそこまで詳しくない)
注意が必要なのは、Virtualboxの共有フォルダー機能を使うと、最終的には
Windowsのファイルを見てるわけだから、パーミッション周りで苦労するのと
シンボリックリンクが使えない(頑張れば使える?)などの問題が発生する。
なのでWindows+boot2dockerでの開発はやっぱりお薦めしないw
boot2dockerは、dockerコンテナを動かして。たいけど、ホストOSがWindowsで
Linuxが無いんだよ。って言う時に、おいWindowsでもdockerコンテナ動くぜwww
これなら、dockerイメージさえあれば、どこでも同じように動く、
それがたとえWindowsであっても(キリッ ってやりたい時だけに使うものだと思ってる。 で、長々と書いたが、Dockerを使うことで、
(ウェブ)アプリを開発する → それを動かす環境を作るのが面倒
っていう時代から、
環境まで含めた(ウェブ)アプリ を開発できる → それを動かすのは簡単!
という時代になったわけだけど、
アプリの開発自体は、今までのやり方のままでいいってこと。
今Windowsを使ってるなら、Windowsでいいし、
俺はvagrantを使って作ったLinuxの開発環境を使ってる。
実機へのデプロイやテスト等で動かすときにDockerを使うことで
同じ実行環境を簡単に作れるから "追加で" Dockerへの対応をするといい。
余談だが、
今までは、アプリエンジニアとインフラエンジニアが分かれていて、
アプリを動かす環境を作成する部分はインフラエンジニアが担当していたから、
その連携が大変でどうたらとかDevOptsとかいう言葉が出てきたりしたけど、
Docker出現で実行環境づくりがインフラエンジニアからアプリエンジニアに移ってきてるんだよ。
アプリエンジニアは大変(笑)というかインフラエンジニアの仕事が減って、クラウドを使えば
さらにコードでインフラかけるから、この2つを分ける必要ないよね?ってなってきてると思ってる。 追記
> 一番簡単なのは、Virtualboxの共有フォルダー機能を使う方法だろう。
Virtualboxの共有フォルダーは遅いという問題もある。
やり方は他にもgitでリポジトリからソースコードを持ってきたり、
結局はソースコードさえあればいいのだからNFSを使って
共有したりする方法もある。
DockerコンテナもData volumeを使わずに、git cloneしたり。
(実機で使うDockerイメージは、イメージ作成時にgit cloneするべきだろう)
git cloneするということは、(開発中の)ソースコードが
リポジトリにpushされている必要があるね。
とまあ、できるにはできるけど、開発中にDockerを使いつつ作業するのは面倒なだけ。
でもDockerで動くようにしていれば、gitリポジトリにソースコードをpushした時に
CIでDocker使ってテストを実行するなんてことができるようになる。 >>307-310
すごく参考になりました。
わからないことも多いですが、ざっくりと雰囲気はつかめました。
右も左もわからず暗中模索してましたが少し霧が晴れた感じです。
いただいたレスをよく読み返して学習の指針とさせていただきます。
ありがとうございました。 >>307-310
質問者と同じく開発スタイルで迷っていたので参考になりました。
> ただしビルドで生成するものがバイナリ実行ファイル等の場合は、ホストOSとDockerコンテナで
> 使うOSが違いすぎると動かない可能性があるので、Dockerコンテナでビルドする必要がある。
ただ、これに関してはホスト OS と Docker コンテナで使う OS を同じにすればいいと思うので
ホスト OS でビルドして、Docker コンテナにはコンパイラなどのビルド環境を入れないように
してもいいかなと思ってます。 boot2docker は罠ですね。
docker-machine create する場合も、Docker ホストは自動的に boot2docker になりますが、
ここを任意の OS に切り替えられると話が早そうです。 >>314
理屈上はそうなんだけどね。
でもそうすると、ホストで開発しやすいOSを使う=コンテナも同じものに
制限されてしまうので、分けるほうが好ましい。
Dockerイメージのサイズを減らすためにAlpine Linuxを使いたいし、
開発ではホストOSにUbuntuを使っていても、awsで動かすときは
CoreOSを使うかもしれないし、柔軟に変更可能にするためにも分離さておいたほうがいい。
まあ別に開発中であれば自己責任で適当に使っていいと思うよ。
アプリ開発のためのインフラとしてDockerを使って開発環境を整備するんじゃなくて
開発作業の一貫としてDockerというツールを使うという使い方。
Dockerの中で開発するのは面倒なだけだからさ。
(あくまで ”アプリ開発" スタイルの話。インフラ・運用の話ではない) >>315
boot2dockerは、アプリ開発者がWindowsで開発している時に
Dockerを簡単に使うためのものではなくて、
アプリは完成したものとして、そのアプリを動かしたい時に
ホストがWindowsの場合に使う手段だと思ったほうがいいよ。
わざわざWindowsをサーバーに使う人は居ないだろうから
実運用向きではなく、Docker自体の勉強で使うときとか、
Windows上にDockerコンテナでサービスを動かしてそのサービスを
個人的に使うのを目的とするとか。
(例えばHTML Validatorをローカルで動かすとか) > Dockerイメージのサイズを減らすためにAlpine Linuxを使いたいし、
> 開発ではホストOSにUbuntuを使っていても、awsで動かすときは
> CoreOSを使うかもしれないし、柔軟に変更可能にするためにも分離さておいたほうがいい。
なるほど。そういう観点ですね。
だとすると以下の引用のようにビルド用のイメージを作るってことになると思いますが、
> ビルドのたびにパッケージのインストールとか時間的にやってなれないので、
> (実行用のDockerイメージとは別の)ビルドをするためのDockerイメージを作る必要がある。
この場合、ホスト OS とビルド用の Docker コンテナは -v でフォルダ共有してから対象ファイルをビルド。
そして、実行用のコンテナを作る際には、ホスト OS から (実行用コンテナに)ビルド済みバイナリを ADD すればいいということですね。 >>318
なので、基本的にアプリ開発中はDockerを使わない。
で、どうしても必要だと思ったときは使うけど・・・
うーん、その場合はいくつかやり方が考えられるんだけど、どれも一長一短
・docker buildでビルドする
完全に動くDockerイメージを作る途中で、ビルドも行う方法。
ビルドツールは入れて消すのでサイズも小さいし実運用でも使える。
だけど毎回ビルドツール入れるので時間がかかる。
・docker buildでビルドする(その2)
サイズは諦めてビルドツールを入れたイメージからイメージを作る。
サイズは最小にはならないが、それが問題になることは少ないだろうから一番楽かも
・実行用イメージとビルド用イメージを分ける
>>318で書いてあるやり方ね。実行用イメージは小さくて実運用でも使え
ビルドの時間も少なくなるけど、作るのが面倒くさい。
ビルド済みファイルを受け渡しする方法を作らないといけないし、
特にフレームワークがビルドとかもしてくれる仕組みだと
なんか二度手間感がある
・docker runした時にビルドする。
必然的にビルド環境も含めたイメージになる。
ファイル更新時に自動的にビルドしてくれるようなフレームワークを
使っている場合、この方が便利かもしれない。テストも実行できるし、
実運用用は別で作ることになるだろう。
ちゃんと作るならおそらく3番目が良さそうではあるけど、開発にとって便利か?
って考えると4番目かなーとも思うけど、そこまでやるのが面倒なので
開発中はDocker使わんでいいやんって思ってるわけ。 一つのDockerfileで開発にもデバッグにもテストにも実運用にも使える
万能な方法があればいいんだけど、
そういやテスト実行環境っていうのもあるんだよね。
実行環境は、実行出来るだけで良い。
デバッグは、最低限デバッグモードで起動できればいいから、その場合は実行環境用と
共通化できるがデバッグのためのツールを入れるならば、追加でなにか必要。
ビルド環境は、ビルドツールが必要。
テスト実行環境は、実行環境に加えてテスト用ライブラリやツールが必要
やっぱり、それぞれわけないとだめだよなーっていうのが現時点の俺の結論。 > なので、基本的にアプリ開発中はDockerを使わない。
まあ結局そういうことですね。今のところは運用環境として割り切って使っていこうと思います。
諸々のノウハウありがとうございました。 >>321
使わないと言っても、開発の終盤っていうか、区切りがいい時点で
実環境をDockerにしているとして、それと同じ環境でテストを
実行したいって場合には使うけどね。
ただ無理して開発時までDocker使いまくるのはちょっと違うかなーって思う。
あー、そうそう例えばウェブアプリを開発していて、データベースとして
MySQLを使う場合に、ホストOSに直接入れるんじゃなくてDocker使っていれる。
なんて使い方はするよ。 自分の場合、開発をアプリごとに新規で立ち上げた VirtualBox(Vagrant) のゲスト OS 内で
やっているので、DB を含むアプリで使うミドルウエアは ゲスト OS に入れることにしてます。
今のところ Docker の使いどころは、リモート環境へ配布するときに Vagrant 内で
Docker イメージを作ってそのままデプロイできるってあたりかなと思ってます。 >>323
> 自分の場合、開発をアプリごとに新規で立ち上げた VirtualBox(Vagrant) のゲスト OS 内で
> やっているので、DB を含むアプリで使うミドルウエアは ゲスト OS に入れることにしてます。
俺もそんな感じ。
スレ違いだけど、これをやると幾つもの仮想マシンにソースコードが分散してしまうのと、
仮想マシンをアップデートするときに、いくつもメンテナンス作業(再プロビジョンは時間がかかる)が
必要だったり、ベースとなるboxファイルを更新しても、既存の仮想マシンはそれを使うわけじゃないし
消してから作りなおせばいいんだけど、仮想マシン上にあるソースコード、全部コミットしたっけ?
消してよかったっけ?とかなって、まだ満足していない。
ホームディレクトリの設定も仮想マシン毎に必要になるし。
常に最新の開発環境が、素早く使えればいいんだけどな。
> 今のところ Docker の使いどころは、リモート環境へ配布するときに Vagrant 内で
> Docker イメージを作ってそのままデプロイできるってあたりかなと思ってます。
ミドルウェアに使うのも便利だよ。例えばいろんなバージョンのMySQLでテストするとか。 仮想マシンじゃなくてchroot環境のすごい版てことか >>325
その通り。
OpenVZいうコンテナ技術を使ってKVMのような仮想マシンを
つくり上げるソフトウェアがあるが、これとは考え方が
違うということに注意する。
chrootが特定のプロセスだけのルートディレクトリを変更するのと同じように
Dockerが作るものは、特定のプロセス(のように見える物)であって
マシンを作っているわけではない。 じゃあGUIアプリを動かすのは
Dockerじゃうまくイカないんだな
X飛ばすしかないもんな >>327
普通に出来てるぞ。これとか
http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/
Xはクライアント・サーバーモデルなのでウェブアプリと
同じようにXアプリとしてネットワーク通信経由で動くよ。
たぶんあんたはGUIのログイン画面とかあってVNCで接続するようなものを
イメージしているのだろうけど、そもそもそれは仮想マシン的使い方であって
Dockerの本来想定する使い方じゃない。
とは言えvncserverとか入れれば出来ないことはないんじゃね?
デスクトップ環境全体を一つのアプリとして考えるという、
ChromeでOS作りましたみたいな話になるけどw >>328
ホストは64bit環境だけど
32bitライブラリじゃないと動かないアプリがあるので
Dockerで閉じ込めたい と思っただけ
chrootだとXつかうのに 結構手間かかったけど
Dockerでもやっぱゴチャゴチャするんだな まあ地味にもっと面倒くさいのは 音を出す方なんだよな 上でdllヘルがどうとかあったけどwinなら実行ホルダにdll突っ込んどけば避けられるんだよな
ハードリンク使えば容量も食わない
Linuxもようやく追いついたということか dockerの実際の運用例の解説とかでオススメの書籍はありませんか? >>332
運用例ならネットの方が百花繚乱では。採用事例とか書籍になるころには古くなってるようなもんだし Docker内でファイルを書いたり消したりを繰り返すと
容量が増えていくんだけど回避策ないの? >>335
Dockerの使い方が間違っている可能性が高い。
基本的に追加することはあっても消さない。 >>336
使ってるWebFrameworkがファイルアップロードするとテンポラリとしてファイルに落としてから処理してんだよね。
この方がメモリの使用量が少ないので、こんな仕組みは多いと思うけど。
使い方間違っているというか一般的な問題かなと。 それテンポラリのファイルを消してないだけじゃないの? >>336
マジで?
仮想環境的に使うものじゃないの?
増えたり減ったりするファイルはどうするの?
nfsとかするの? データ用のコンテナ作るかホストの領域をバインドする >>337が書かないから調べてみたが、削除したらデータ増えない。
watch -n 1 df -m しつつ下を実行。
・作成して削除・・・増えない
docker run -i -t busybox /bin/sh -c 'while true; do dd if=/dev/urandom of=/tmp/a bs=1M count=1; rm /tmp/a; done'
・作成する・・・当然増え続ける。
docker run -i -t busybox /bin/sh -c 'while true; do dd if=/dev/urandom of=$(mktemp) bs=1M count=1; done' >>340
何度も言ってるけどDockerは仮想環境じゃない。アプリを作るもの。
アプリ+それを動かすのに必要なサーバーやライブラリなどを
一つにまとめて、単体のアプリのようにするもの。
アプリのバイナリの中にデータ追加していかないだろ?
それと同じで完成したコンテナの中にデータは追加しない。
追加するときは>>341が言ってるようにコンテナの外に保存する。 >>344
別に使えなくはないけど、そういう使い方を目的として作られたものじゃない。
まずchrootは単なる技術。ルートディレクトリを変えるだけの技術。
基本技術だからいろんな応用ができるもの。
その技術を使って特定の用途に最適化されたものがDocker。
せっかく、特定の用途(アプリケーションコンテナ)に最適化されてるのに、
それを捨てるならDockerを使う意味は無いし、
想定された用途以外に使うなら無理やりな使い方になるから、
逆に使いにくいだけだよ。 dockerの中でマウントしたら
外でマウントしたことがわかる? 永続化がよく分からなくて試行錯誤してたけど
Dockerfile内にvolumeが指定されてるとコンテナを作るときに--volumeで明示的に指定しないと
/var/lib/docker/volumesの中にランダムな名前のディレクトリがコンテナを作る度に増えていく
コンテナが残ってればdocker inspect CONTAINERで分かるけど削除してしまった場合どうやって整理すればいいの?
>>335の言ってる増え続けるってこれのことなんじゃないの? ああvolumeをdockerの管理下に置きつつ任意の名前にしたい場合は
docker volume create --name hoge
して
docker create -v /var/lib/docker/volumes/hoge:/hoge image
にすればいいのか
あとデータ用のコンテナを作ってる例が多いんだけど
これって複数のコンテナから参照する場合だけ?
1つのコンテナからだけ参照する場合は上記のようにボリュームを作るだけでいいのかな あー、docker volumeってこんなんなんだ。
alpha版(?)のdocker-volumesの方が分かりやすかったな。
> コンテナが残ってればdocker inspect CONTAINERで分かるけど削除してしまった場合どうやって整理すればいいの?
docker volume ls -f dangling=true で調べられるみたいだよ。
一気に消したい時はお馴染みのアレだね。
> 1つのコンテナからだけ参照する場合は上記のようにボリュームを作るだけでいいのかな
というかそれが「コンテナでボリュームをあつかう」という一番シンプルな事例の話だと思う。
1つのボリュームを複数のコンテナから共有したい。という要求があった時に
ボリュームは複数のコンテナからマウントできないから、
データ用のコンテナを作ってコンテナの方を参照するってめんどくさい話がでてくる。
例えて言うのならUSB-HDDを複数のPCに同時に接続できないから、
専用のPCに接続して、ネットワーク経由で参照するみたいな感じなわけだけど。 >>349
それは・・・多分、docker volume実装前に作られたやつかな。
ソースコードざっと見ただけだけどファイルを直接消してるみたい。
きっとdocker volumeよりかは便利なのだと思うけど、内部を直接触ってる。
リポジトリ見に行ったらお馴染みのアレ書いてあった。
> Note about Docker 1.9 and up
>
> To delete orphaned volumes in Docker 1.9 and up you can also use the built-in docker
> volume commands instead of this docker-cleanup-volumes script. The built-in
> command also deletes any directory in /var/lib/docker/volumes that is not a
> volume so make sure you didn't put anything in there you want to save:
> List:
>
> $ docker volume ls -qf dangling=true
> Cleanup:
>
> $ docker volume rm $(docker volume ls -qf dangling=true) なるほどサンクス
あとごめんいちいちvolume create しなくても
docker create -v hoge:/hoge image
でよかった
なんか最初やったとき上手くいかなかった気がするけど今やったら普通に出来た rktを作った理由=Dockerの問題点はもう解決済み dockerでインストールしたプログラムを
ホスト側で実行してるようにみせることはできる? >>362
考え方間違ってる。
こういう風に使うんだよ。
(ホスト上で実行)
docker run --rm busybox cat /etc/passwd | cut -d: -f1
考え方的には、コンテナ=1アプリと考えて
view_password | cut -d: -f1
とやってるのと同じ。
あるアプリが、"たまたま" コンテナで動いていただけ。と考える。
ファイルやソケットに関してはvolumeの機能を使えば
コンテナ内に情報を渡せる。 >>363
その発想だよね。シンプルが第一
うちの上級技術者さんもなんかやたら頑張りたがるので複雑になるばかりだわ マルチホストネットワークのこと言ってんじゃねーの?
363は勘違いしている可能性高い 考え方の問題もあるけど解決したい問題の内容がわからんことにはな
上級技術者さんがどんなタスク振られてるのか想像することしかできん
「こんなのDocker前提でやらせんなよ」みたいな類の難題を、泣く泣くやらされてるだけかも知らんしな 用もないのにdocker入れて大炎上してる
もちろん誰も助けてくれない 俺も全く必然性は無いけどDocker入れてやろうと考えてる
周りは技術ゼロだけどバッチ処理に使うだけだから大丈夫だろ 新しいサービスはdockerにしてるけど
一人で管理してるから俺が突然死んでも大丈夫なように最低限ドキュメントは作ってる スレたった頃から比べれば、物凄いハッテンしたよね(´・ω・`) ホストとコンテナのLinux OSのバージョンは同じでなければならないんでしょうか。
例えばホストが3.8でコンテナが2.6みたいなことは可能ですか? >>377
できない。そういうことがしたかったら、KVMとか、Xenとか、ESXi とかどうぞ。 他のOSみたいにVMでdockerを動かす方法はあるけど
そもそもその質問自体dockerを理解してるか? Docker 上で TensorFlow 使いたいんだけど
$ docker run -it b.gcr.io/tensorflow/tensorflow
ってやると notebookserver が立ち上がってコマンドプロンプトが出ない.
notebookserver とやらを起動しないでプロンプト表示させる方法誰か教えて.
ちなみに http://[自分の IP]:8888/ をブラウザで開こうとしても
ERR_CONNECTION_REFUSED でダメ. docker run -i -p 8888:8888 b.gcr.io/tensorflow/tensorflow
docker toolbox使っているならそのデフォルトIP
http://192.168.99.100:8888/
でなんか出てきたぞ beforehoge | hoge | afterhoge
みたいな処理のうち、hogeが
32bitアプリで、仕方ないから 具体的な用途は何?
今使っている物とは別のバージョンのソフトを入れるとか? 今すぐサーバー上で設定済みのWordPressを動かして!
Dockerならできます。 >>387
Dockerなら、何もしなくて設定済みのWordPressインストールされてて即実行できるの?
今すぐっていうことは、ダウンロードも必要ないんだ?
へー、ノーベル賞とかチューリング賞取れるレベルのソフトなんだね。 WordPressっていうかWebサービスだよね
Webサービス丸々一つ持ち運べる >>388
$ docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress
この程度じゃ取れないと思うよ(マジレス データの保存をどうするか、悩むところだ。
Dockerこんてなのデータ永続化はどうしてるんだろう。 意外とこれを知らん奴が多いのな
Docker使ってなんかやろうと思うなら読んどけよ
The Twelve-Factor App
http://12factor.net/ja/ dockerを勝手に運用に使ってた奴が辞めて現場は大混乱だ >>395
それだけ重要な人を失ったということだ。
社長が辞めて大混乱になるのと
同じぐらい大変なことが起きてるな。 今どきDockerを知らないレベルはヤバイ
問題は運営方法をどうするか決めずに設定だけやってる奴ら
うちの会社だとバックアップ方法がバラバラなので、どれかコンテナの運用者がいなくなると一気に危険ゾーンだわ そいつらどんな了見で自分勝手な本番運用しやがるんだよw
いますぐ皆クビにしろマジで >>395
勝手に言うか全部自分に任されてるから勝手にやってるけど
自分が今急に死んだらやばいかも
まあそうならないようにドキュメント書くようにはしてるけど 俺が死んだら、迷惑かけても、痛む心がなくなってるわけだから、どうでもいいや。 俺は嫌な思いしてないから
それにお前らが嫌な思いをしようが俺の知った事ではないわ
だって全員どうでもいい人間だし
大袈裟に言おうがお前らが死んでもなんとも思わん
それはリアルでの繋がりがないから
つまりお前らに対しての情などない 勝手に運用してるのも問題だけど、辞めるまで気づきませんでした、技術的にスキルが追いつかず引き継げませんってのもまた問題じゃね? 技術力を売りにしながら現場丸投げはダメな会社あるあるだよね〜 >>403
自分勝手な事するような馬鹿にスキルが追いつかないとかありえんからw
何の夢見てんだよお前w >>405
自分勝手なことをやるのは、単に
その会社のコミュニケーションの問題だろ。
そもそも勝手にできてしまうって状況が駄目だってわかる?
一人で作業をさせているってことだし、ドキュメントを
用意してないってことだし、ミーティングもなにもない
情報の共有がされてない会社だってことだよ。
Dockerがわからないのは単に技術力不足。
これはわからないほうが悪い。 >>406
> Dockerがわからないのは単に技術力不足。
こんなレベルのやつ現実の職場にはいないからw
おまえあれだろ?春休みの学生さんってやつだろ?
まともな会社に入れるようにせいぜい努力するこったな >>407
いや?w いないと証明するには
すべての職場を調べないといけないんだけど。
お前、知ることが出来るはずがないことを
知っていると言ってることに、自分で気づいているか? >>409
まあ喧嘩するつもりもないが
そんな眠たい事言ってるから>>408みたいな馬鹿が会社に潜りこんでくるんだぜ へ? お前の理屈を説得力がないと潰してやったのに、
何言ってるの?w Docker使う奴は頭おかしい。このスレ見るとよく分かる。 東証一部だが、この醜い争いの元凶である現場の暴走がまさに起きてるぜ
主な理由が、問題起きたら人柱に辞めてもらうことで手打ちにしてもらう。それまでは丸投げと言う素晴らしい管理方針だから
意外と二次受けのほうがしっかりしてるのよ vncか母艦のローカルソケット共有だっけ
ググればすぐ出るレベルだからな… GUIは基本的にかったるい
CUIで済む用途に無理にGUIの皮被せるのって
何の意味も無い >>420
それな
いちいちコンソール起動するのほんとウザイ Docker 勉強用に良い本ないですか?
複数のコンテナを一纏めにVPSにデプロイしたり、必要最小限のコンテナを0から構築したいです。
あと仮想ネットワークを使いたくないです。
その変の知識が日本語で一冊にまとまってる本があれば教えてくだせぇ・・・ >あと仮想ネットワークを使いたくないです
の意味がよく分からない >>423
なんと言ったら伝わるのか自分でもよくわからないのですが、ホストもコンテナも同一IPで使用したいんです。
Dockerって確か仮想ブリッジみたいなのが勝手に作られましたよね?
それを使いたくないんです。 >>424
>ホストもコンテナも同一IPで使用したいんです。
よくわからんけど外から見たらホストもコンテナも同じIPアドレスだけど すみません、ちょっと私の語彙ではうまく説明できそうにありません。
とりあえずネットワーク周りとか複数コンテナの管理法とかが乗ってる本を探しています。
ここ数年でDocker周りのツールが増えまくって、何が何をするツールなのかわかりづらくとっつきにくいんです。
ツールの名前と効果が頭の中で一致しないというか、例えばKubernetesとか言われても何じゃそりゃ状態でして・・・ まだ本はすぐ古い内容になっちゃうしなぁ。
とりあえず、Dockerで遊ぶ。
つぎ管理系ツールを探す。でいいんじゃないな?。
VPSによるしな。 変なこだわりをやりたいなら人に質問せずに自分で調査できるレベルにならないとなあ
この分野もはや本は出ないから英語のマニュアルやらソースやら全部見るしかないだろ dockerのマニュアルはかなり親切な方だと思うけど
まずマニュアルだけでも大体理解出来ると思うが 用語使って説明できないんじゃ、掲示版で語り合うこともできまい
libert読んでからとか(オイ もし仕事でやっていて、こういう陳腐化の早い
ソフトやシステムの使い方の日本語の本やドキュメントが無いと何もできないなら
もうこの業界やめたほうがいいよ
日本語の本を買ってもいいのは陳腐化が遅いアルゴリズムとか計算機アーキテクチャとか数学の教科書とかはいいと思うけど、
特定のソフトの使い方なんてものは、英語だろうが何だろうが基本的にはそのソフトのドキュメントを見て手早く済ませるべき話 もし仕事でやっているなら、こういう陳腐化の早いソフトに手を出さない方がいいよ >>426
ツールが多いのが問題じゃないと思うよ。
あなたのやりたいことに対して必要な知識(ネットワーク周り(NAT)、Dockerとは何か、コンテナの管理って何をするのか)が全然足りてないから、
ツールの概要を読んでも何も見えてこないだけで。
かと言って、これを読めば一通り網羅できるよってのがあるわけじゃないんだけど。 Dockerについては、RedHatの中井悦司が、本を出している ていうか日本語のdockerの本て数冊しか出てないじゃん
なんか人に頼り切ろうとする姿勢が見える わかんないことだらけだからこの際ちゃんと勉強して進めたい、という気持ちは間違ってないと思うけどね
ただ、VirtualBoxとかVMwareとかでVMをNATモードで動作させても似たような感じになるから、まずはその辺の書籍でも読んでみたらどうだろうか まー強いて言うならTCP/IPの基礎がきちんと分かってないとそもそも駄目
その上で、Linuxの場合iptablesとbridge辺りのことをある程度調べて把握すれば
kvmだろうがDockerだろうが公式のドキュメントに目を通す程度で苦労せずに対応できる
そういう前提となる基礎知識なしに、場当たり的に
入門書に書いてあったりするオマジナイを覚えようとするのが一番ダメ (´・ω・`)手を動かさないやつは何をやっても無駄 >>440
まったくだ。
ボコボコにしてやんよ
∧_∧
( ・ω・)=つ≡つ
(っ ≡つ=つ
./ ) ババババ
( / ̄∪ SL移植されとる
docker run -t co2016/sl SLが走りよる
# docker run -t co2016/sl Docker使った開発してるが興奮してきた
これ将来性はどうなんだ?インフラになるのか? >>449
微妙。正直な所、一過性のエンジニアのおもちゃのレベルを脱していない。 >>450
同意
ウチの会社ではCIでしか使ってない
つうかLinuxしか動かないしなぁ Arukas無料なんで
公開即登録しておいた
要るのは(出来ればプロバの)メールアドレスだけだし
有料のは後で出るはず
これが無料でできるの?というレベル Windows10で将来的にBASHが動くんじゃなかったっけ?
そうなるとdocker絡みでなにかおもしろい動きとかないかな Windows は HyperV Container を使ったのがまだ正式版じゃないけど出てるよね。
これは Windows のコンテナで、 docker 使って IIS を動かすようなもの。
bash と同じように LinuxAPI を用意する形で docker が実装されることはないと思う。
bash などの UserSpace でどうにかできるプログラムと違って LinuxKernel べったりだし。
将来、「docker -> HyperV Container(windows os) 」 で windows アプリを制御できるようになるけど
「docker -> vmやremote (Linux + docker daemon)」で Linux アプリの制御は変わらないはず。
(昔からある)Linux の docker に関しては、今日の AWS summit で AbemaTVFresh! で
本番で使ってる例が紹介されてたけど、こういうのや AWS や GCP、RedHat のサポートなどをみてると
エンジニアのおもちゃよりはもうちょっとレベルが上ってるのかなと思う。 2ちゃんっておっさんばっかりだから、時代の流れに付いけてないな。
Dockerスレが過疎るとかwww >>450-451
あんまりか
バージョンが若いせいかバグも多いよね
思想としては面白いとは思うんだけどな >>457
言うまでもなく、BSD JailやSolaris Containerとかあって目新しくないし、仮想化技術も進歩してkernel共有するメリットがあんまし感じられないなぁ
と、docker commitもgit commitに比べてコレジャナイ感あるし、、 Jail や Zone と docker を比較するのって use case わかってるのかなって感じる。
docker の基本はパッケージングでその方法として現在はコンテナ使ってるだけだし。
Jail や Zone では Arukas のようなサービスや k8s や ECS のような仕組みを
作ろうとはなかなかならない。
Jail や Zone はインフラ屋のおもちゃでそれ以上にするのは辛かった。
それに対して、docker はアプリ屋のおもちゃだからインフラ屋でピンと来ない人が多い気もする。
あと、docker は思想が強すぎるからそれが合わないというのもあるな。
インフラ屋としてはキモい面も多い。
だから droot とかが作られてるんだろうけど。 >>459
>Jail や Zone と docker を比較するのって use case わかってるのかなって感じる。
コンピュータ屋のおもちゃであることには変わりないだろう? >>459
なるほど
インフラとアプリどっちもかじってないと良さが分からないってことは >>459
話を聞いてdrootは無いなって思った。
あれ思想がどうこういうより、
dockerを使った→ちょっとした問題点があった→普通のコンテナでいいんじゃね?
という単純な発想で作られたものだよ。その他の理由は後づけ。
古いやり方を引きずってるだけで、それでいてイメージのビルドツールとして
dockerを使おうとしているから、結局dockerの知識が必要になって、
さらにdrootを使うことで使えないdockerの知識と
drootそのものの知識が必要になる。
dockerの問題点は、dockerのバージョンアップで解決するし、
drootはdockerに依存しつつ、dockerとは全く違う劣化版を
個人で作ろうとしているから、将来性も感じられない。
現時点では、drootは確かにこの点ではdockerよりもメリット有るね。
だけど、dockerのメリットを随分と失っているよね。という感想で、
そして時が経てば、dockerのバージョンアップで、
drootのメリットってもう無いよね。になっていくと思う。 >>459
インフラ屋のおもちゃってのはよく聞くけど、それを開発するにもネットワーク、マシン、OS、プラットフォームが必要(とそこに至るまでの知識)じゃない?
俺は配線〜アプリまで全部やるけど、正直dockerのimage起動するからよろ!って渡されたら中身がカオスってたりしそうで怖い。glibcってナンデスカ?って人が古いまま使ってるとか容易に想像できる
なんというか、 途中でおくってしまった、、
OSI参照モデルとかだと下位レイヤーの知識は必要ないんだが、現状そう上手くいかないよな。
あと、dockerと関係のツールの分裂と乱立っぷりを見るととても不安になる >>464
> 正直dockerのimage起動するからよろ!って渡されたら中身がカオスってたりしそうで怖い。glibcってナンデスカ?って人が古いまま使ってるとか容易に想像できる
意味がわからん、Dockerfileみれば中身なんてわかるし、
最新にしたければDockerfileからイメージビルドしなおせばいいだけじゃん。 >>466
人から渡された物をいちいち中身検証して最新にするのかよ。
なんでそんな面倒なことをしなければならんの? 上から下まで知ってるとか書くわりには
dockerについてぜんぜん知らずに
よくそこまで否定するな >>467
Dockerfile見るのがそんなに手間になると思えんのだが… インフラ屋としては Dockerfile の中身は当然見るし、
今ならばプルリクきたら「Docker Security Scanning」や「Vuls」あたりで
CIなりで自動でチェックを入れることを検討する。
そういうのが面倒なら docker 使うのやめたほうがいいよ。向いてない。
Docker 社も今以上にインフラ屋に使いやすくするつもりはないはず。
アプリ屋やデザイナー、プロデューサーには Kitematic や Docker for Windows/Mac で
便利にしていくという方向性があるけどね。
使ってて楽しいからエンジニアの自分としては「おもちゃ」という表現でいいけど、
Siri のバックエンドとして使われてたり、クックパッドで使われてるのを見ると
揶揄するつもりで使ってるなら自分のプライドを保つ以外に意味は無いよ。
IT系でないお客さんの人事/経理などを扱うSI系だとデプロイは1月に1回とか、
サーバも数ラック入れてインフラの設定は年に1回変えるかどうかだし変えるときは
レビューなど含めて1月かかるとかざらだから Docker なんて苦労して使う意味ないしね >>463
docker を手元で使う多くのアプリ屋としては docker は便利なんだけど
本番の運用として使うインフラ屋としては docker は便利すぎて面倒なんだよね。
docker は「1 から10のうち 1から9 までやってくれる」けど、
私達の欲しいのは「8から10」なんですという場合にdocker を使うのかって話。
自分としては"本番で使うなら" docker の差分ファイルシステムは必要ないし、
docker daemon が提供する REST API も必要ない、Network も iptables とか触ってほしくないし
Host と一緒でいいから Network plugin もいらない。
でも、docker で出来たイメージ(というか今なら OCI フォーマット)や Dockerfile を
アプリ屋と共通の言語として使いたい。
これらはdrootを作った"はてな"やペパボあたりの今までオンプレで運用してたところは
同じように不満を持つんじゃないかなと思う。
オンプレだとクラウドのように動的にサーバを追加したリしないので Mesos のようなスケジューラに
依存せず自分たちで割当固定したほうが扱いやすいしね。
(docker が 1 から 10 までできるようになってもこの辺のツールを作ってる会社は変わらないと思う)
その結果 droot やら haconiwa やら apr などオリジナルコンテナエンジンを作ろうかなとなるだけ。
droot は他の会社が使うものじゃない。あれははてなが必要だから作ったものだし。
ただ似たようなものを作る会社は今後出てくると思う。
または、うちの会社みたいに machinectl(systemd-nspawn)つかったり、 CoreOS の rkt や
OCI の runc を直接使う会社も出てくると思う。
どっちの場合でも共通言語は Dockerfile で、細かな仕様は runc の SPEC.md あたりを参考にしてね。
docker とオリジナルツールについて知識が必要なのはそのとおりだけど、結局コアの技術は今のところ
コンテナ(Namespaces/Capabilities/cgroup)+差分FSなのでオリジナルツールは docker を理解する方法として
デメリットには感じないね。 >>468
いやDocker自体は全然否定はしてないんだ。
ただ、これからはDockerっすよ!!
とかいってスマートに纏めてあるDockerfile渡された事一回もないだけなんだ、、
よくわかんねーからとりあえずchmod -R 777とか書いてたり、、 >>472
前提が変わってるし
自分のレスとも矛盾してるやんけ
んなもんそいつに言えよ >>473
説明したりPR出したりするのが面倒なのと、俺の周りにそこらで意識高い人がいないんだな、、すまん ハイパーバイザー借りて
あれっネスト出来ない…quemやvirtualbox糞遅せー!って時助かるよね >>471
> 自分としては"本番で使うなら" docker の差分ファイルシステムは必要ないし、
それはどういう意味?
1. あってもなくてもかまわないが、必要と思ってないだけ。
2. あったら困る。 >>471
> オンプレだとクラウドのように動的にサーバを追加したリしないので Mesos のようなスケジューラに
> 依存せず自分たちで割当固定したほうが扱いやすいしね。
> (docker が 1 から 10 までできるようになってもこの辺のツールを作ってる会社は変わらないと思う)
いや、dockerを使う理由は、アプリの開発速度にインフラやがついていけないからでしょ?
いまやアプリが使ってる各種ライブラリっていうのは、毎日のように
どれか一つはバージョンアップするんだよ。
そのたびに、インフラ屋は、環境を作り直すのかい? >>478
1 と 2 の間かな。
Storage Driver (overlay、aufs、devicemapper あたり)はどれも今のところ一長一短で
パフォーマンスや細かな不具合がある。
これらの問題がなければ運用面でのメリットがあるのでできれば使いたい。
ただ、これらの問題があるかぎりはトラブルシュートが面倒なので「あったら困る」。
Storage Driver のトラブルについてはまとめてくれてる方がいるのでそちらが参考になる。
https://github.com/AkihiroSuda/docker-issues
問題だと思ってるものの中では、仕様として残り続ける物もあるとは思うのでどこかで妥協して
overlay あたりを利用するようになるかもしれない。 >>479
以下、質問の意図を私がちゃんと理解できてないのでおかしいことを言っているかもしれない。
> dockerを使う理由は、アプリの開発速度にインフラやがついていけないからでしょ?
たしかに、アプリ側がトライ&エラーなどをする場合にインフラ屋が足かせになりってるのは事実。
ただ、それらの多くは技術レベルの問題ではなく、システムの環境的な問題や手順的な問題なので
そこをすっ飛ばして docker イメージをアプリ屋さんが作ってもらうスタイルだと思っている。
docker なら構築手順書としての役割と動作確認環境としての役割をある程度満たしてくれるしね。
> いまやアプリが使ってる各種ライブラリっていうのは、毎日のように
> どれか一つはバージョンアップするんだよ。
> そのたびに、インフラ屋は、環境を作り直すのかい?
これはアプリ屋さんの仕事だと考えている。
デプロイ環境の構築やセキュリティチェック、パフォーマンス対応がインフラ屋さんじゃないかな。
(当然、上記以外のホストOSの管理やNetwork、ロードバランサ、バックアップの設計なども)
バージョンアップするかどうかを最終的に決めるのはアプリ屋さんの仕事だと思ってるし、
バージョンアップ後の動作確認もアプリ屋さんやプロデューサーが実施しないと意味ないしね。
アプリ屋さんが docker で環境を作って動作確認なり出来たイメージを用意する。
それをチェックして配布、deploy して動かす環境をインフラ屋さんが用意する(drootなど)。
つまり、インフラ屋はアプリの動作環境を Dockerfile などで理解はするけど構築はしない。 > つまり、インフラ屋はアプリの動作環境を Dockerfile などで理解はするけど構築はしない。
当たり前じゃね?
っていいいうかDockerfileを見るのは、Dockerfileの中身が信用出来ないからで、
信用できるならば、中身無くていいんだよ。
社員なら信用できるでしょ?w
社員が信用出来ないっていうのなら、その社員が作ったアプリも
信用出来ないわけで。 >>482
> アプリ屋さんが docker で環境を作って動作確認なり出来たイメージを用意する。
イメージをメールで送りまーすとかバカなやり方なわけでw
流石にそんなことはしないだろうが、もちろんファイル共有で渡すなんてこともしない。
デプロイの自動化を考えると、イメージをどこからか取ってくるかそれともどこかの誰かがイメージを送り込むか
そのイメージをどうやって効率よく受け渡すか?が必要になる。それがDockerレジストリなわけだよ。
そのDockerレジストリはその仕組み上イメージを差分で送受信するからデプロイも速くなる。
ここで一レイヤーのイメージにまとめてしまったら差分で取ってくることができなくなる。
そしてもう一つ。OSやミドルウェアのバージョンアップ。セキュリティパッチのほうがわかりやすいか?
これはアプリは関係ない。この場合セキュリティパッチをあててからデプロイするわけだが、
これはアプリ屋がやることじゃない。
だからアプリ屋はDockerfileを作るところまでで(もちろん開発中にテストビルドは行う)
インフラ屋はソースコードのリポジトリに含まれたDockerfileを使ってビルドする所を担当することになる。 うーん
結局何を言いたいのかな
自分でわけ分かんなくなってないかい >>485
まずは君、DockerfileとDockerイメージの区別はついているかい? インフラ屋とアプリ屋ってそもそもそんなキレイに分かれてるもんなの? プログラマーは、何か1つのプログラミング言語がわかればよいけど、
サーバー構築は、LPIC資格がいる
資格を持っていない人が、サーバーをいじくると、
データが消えたり、大変なことが起こるから、
プログラマーよりも給料が高いし、難しい仕事 俺はプログラマーだが、どっちが難しいかはともかく、
出来る事ならrootは使いたくないわな
サーバー屋さんに丸投げしたいわ >>491
釣り針が大きすぎるんだよ
でもLPIC限定で言い切る不条理さは捨てがたいし悩ましいな ×LPIC持ってないと大変なことが起こる
×LPIC持ってると大変なことは起こらない 俺はいつもお守りと折りたたみ傘を持ってるから、
大変なことは何も起こらないよ。 >>497
適切な例え
TOEICが高いから英語の業務を任せろというぐらい横暴だよね
多少はできるかも程度 危険物取扱免許を持っているが自分が何を取り扱っていいのか忘れた 俺も持ってたな。内容完全に忘れてる
あれ5年くらいで失効だっけ Windows 10の最新プレビュー「Build 14361」、Dockerコンテナをサポート
http://itpro.nikkeibp.co.jp/atcl/idg/14/481542/061000239/
今回のビルドで同社は、Windows上でDockerコンテナを
ネイティブに実行できる機能を搭載したほか、 ん?どういう?。
XPのコンテナとか、NTのコンテナとかそういうのに使うって事? わかってないかも。。
dockerってOS部分はホストを使うんだよね?
windows上でネイティブで動くって事は、Win上にLinuxシステムコールが実装されるって事?。
それとも、Dockerコンテナって仕組みだけで、OS部分はホストであるWindowsなので、
コンテナもWindows用ってこと? >>503
おや?parrallelsとの関係は如何に? >>507
これはWindows版のDocker Engine(Docker clientによって管理されるdocker containerの管理サービス)が
組み込まれましたよという話みたい。 使えるコンテナはHyper-Vのもので、コンテナの中身は
Windows Server 2016 Technical Preview 5 Nano Server。
Docker for Windowsやらあるから混乱するけど、それはLinux VMをVirtualBox内で走らせてそこで
Linux コンテナを走らせてたもの。 これはネイティブにWindowsコンテナをWindowsで走らせ、
それをdockerで管理できますよという話。
https://blogs.windows.com/windowsexperience/2016/06/08/announcing-windows-10-insider-preview-build-14361/ WindowsServer2016TP3で既にネイティブなDockerは実装されてた
Dockerイメージダウンロードで失敗したから(多分ディレクトリの権限の問題で)
速攻でTP3削除したけどなんでWindows10にまで必要なのかわからん
そんな暇あるなら初めて同時リリースできなかったWindowsServerのほうを何とかしろよ
Docker実装してる間にUbuntuなんかLXDリリースしてんじゃん >>507
一応Dockerって書いてあるけど根本はWSC(WindowsServerContainer)の実装
LXCのWindows版
知ってるとは思うけどDockerも自身の機能だけでContainerを提供しているわけではないから なんかこの界隈技術者の流動多いのかな?
またはvmwareへの対抗なんかな? >>512
対抗というかLXDは既存のハイパーバイザを置き換えることを目標にしてるみたい
LXDが普及したら爆発的にVDIが普及すると思う
もともと今のVMwareとかCitrixとかってエコシステムとかイミュータブルみたいなポリシーに
反してるからさっさと滅亡してほしい
LXDが普及したらDockerはどうするんだろうね LXDは仮想環境として使う用途
Dockerは単一サービスを提供するためのプロセス実行環境を包むためのもの dockerってデバイスファイルはどう扱われるの? 見れない感じ? >>514の説明だとわかってないだろって言われてもしょうがない
インフラ屋でもなければわかってる必要なんてないけど こうやって、曖昧なことを言って俺のほうが詳しいんだぜ風を
演出するの得意だよなぁw
>>514の内容が正しいか間違っているかさえ言わないんだぜ?
本当は知らないか自信がないから言い切れないんだよ。
どっちでも取れるようなことを言って、あとでつじつまを
合わせようと考えてるわけだね。
なお俺の意見言っておくわ。
>>514の内容は正しい。 514 だが、どこが「わかってない」か書かずに
わかってないと罵倒するだけなら小学生でも出来るw
自分は、dockerなんぞ出る前からchrootやcgroup使ってアプリの実行環境の分離を色々独自に検討してたものだけど
ぜひ、わかってる方に正確な所を語って欲しい所ですなw 自信あるならスルーしてればいいのに。
自信が無いから、自分を肯定したくなるんだよな。 ごめんよw
516 は、いつもの奴だから一言だけ言って放置しようと思ったが、
他にも調子にのる、実装もロクにしたことないくせに
自称俺は分かってるモンが居そうだから、つい、ね。大人気なかったw そっか?あまりに周りが馬鹿だと発狂する天才もいるから、時によりけりだと思う。総じてどうでも良い
ちなみに、うちの上は >>514 のDockerの使い方をしてなくて運用丸投げなので死ぬ思いをする >>522
> 自信あるならスルーしてればいいのに。
つけあがるからそれはやったらだめ。
完全にぶちのめしてから、次に行くべき。 Docker使うのに困らないぐらいのマシンのスペックを教えてくれないか?
メモリ4GBストレージ128GBでかなり辛いんだが >>526
まじて物理マシン使っているくらいのヌルヌルさ感じるけどな〜
物理マシン普通に使っている時はどうなのよ wineをDockerで使いたいけどまったくうまくいかん >>528
Dockerは単一サービスを提供するためのプロセス実行環境を包むためのもの >>528
やったことはないが動くっぽい
ttp://qiita.com/syui/items/b43ba220d9cd1e2fb74f
アホやこいつ>>529 >>531
ストックって何?イイネの数と思えば良い? 本格的な内容だと理解できずにスルーされる程度のユーザー層のサイト >>532
いいねよりもシビアw
いいねは付き合いで押すやつがいるが、
ストック数は、その記事が価値があると
思われてるかどうかはっきり分かるからなw 価値があると思われてるかどうかをはかるならストック/ページビューとかでないと
単純にストック数だけ比較するのはナンセンス ページビューが多い・・・よく検索されているが、価値は少ない
ページビューが少ない・・・検索すらされてない情報
>>536
どっちがいい?w ストック数は単にバズったかどうかの記録で情報の価値じゃねーぞ むしろページビューがバズったかどうかの記録だろwww ストック数ぐらいでしか突っ込みどころが入れられない奴なんだよ
内容がまずいなら普通は内容にケチをつけるからなぁ。 内容がまずいことは一番最初に指摘されてるよね?w
> Dockerは単一サービスを提供するためのプロセス実行環境を包むためのもの >>542
記事だとlineインストール済みの専用イメージを作ってるぞ
> Dockerは単一サービスを提供するためのプロセス実行環境を包むためのもの
という点ではまったく正しい使い方だろ > Dockerは単一サービスを提供するためのプロセス実行環境を包むためのもの
探しても見つからないんだけど、そもそもこれはDockerが公式に言ってる文言なの? >>544
一般的な話だからDockerが公式に言うべきことではない。
アプリケーションコンテナ と システムコンテナ の
違いについて調べましょう 使い方の前提と、どう使うかは別。
Docker便利だけど、/bin/initを叩くとか面倒だよね的な。
じゃぁ、そっち用途のを作るか的な。 いや、そのただの「一般的な話」ををまるでそれが絶対的に正しいかのように使ってるから婉曲に指摘したつもりなんだが
通じなかったようだね、申し訳ない > Docker便利だけど、/bin/initを叩くとか面倒だよね的な。
当たり前だろ
Dockerは単一サービスを提供するためのプロセス実行環境を包むためのもの
なんだから
正しくない使い方をして面倒とか、わかってないとしか言えない。
>>547
ドッキングウィンドウを使用すると、ソフトウェア開発のための標準化されたユニットに
その依存関係のすべてを使用してアプリケーションをパッケージ化することができます。
英語読めなくてもこれならわかるでしょwww ドッキングウィンドウ糞ワロタ
dockerのサイトの英文をgoogleで翻訳してそのままコピペでドヤ顔とかさすが頭の出来が違いますなぁwwwww >>547
頭の固いおっさんだろうから、放置しとけ
「ハサミは紙を切るためのもの。それ以外は間違っているし、面倒になるのは当たり前ドヤァ」
と同レベル。間違いでは無いんだけどねぇw あれあれ? 間違いじゃないんですよね?
間違じゃないなら何が問題ですか? VPSにプロキシ立てまくって自作自演しまくりたいんだけどおすすめのイメージない? これ使って見た人いる?
試したけど起動成功しないしなんで失敗するのかも分からない
https://arukas.io/ 去年のサービス開始時から触ってるので
どのイメージをどういう設定で出来ないのかなど提示してもらえれば
アドバイスできるかも >>552
Dockerなんかいらなくね
VPSよりAWSにインスタンス作ってEIP変えまくればいい docker 使っても src IP 変わらないですしね。
低コストにやるなら lambda と API Gateway を組み合われば
proxy 設定ができてアクセス毎にほぼ別インスタンスという環境は
構築できそうです。
または GAE でもいいかも。
# 試していないのでプラットフォーム側で対策されてるかもしれないですが Dockerを使うことでサーバ構築のコード化が図れるのかな
と思って使えるか検討してるのですが
apache2とかあえてforegroundで動かしているみたいですね。
この理由ってどなたかご存じないですか?
既存のインフラ構築と随分違うんだなーとびっくりしてます。 あえてっつーか、裏に回す意味がないだろ。apache専用なんだし >>560
サーバー構築のコード化というとだいぶ違うな
Dockerの目的はアプリにOSを丸ごとスタティックリンクすることだ
それによってアプリに合わせてサーバーのコンポーネントを管理しなくてよくなる
Apacheの例で言えば、OSが立ち上がってその上でApacheがデーモンとして起動するんじゃなくて、
あくまでOSのコンポーネントが全部丸ごとリンクされた状態のApacheを起動すると考えるといい >>560
アプリ構築のコード化が図れるんだよ。
そもそもあなたの言ってるサーバー構築っていうのは本当に
サーバーの構築ですか?アプリの構築ではありませんか?って話。
本来サーバーの構築っていうのは、スタンドアローンであれば
OSのインストール部分までだよ。複数台で連携するならば、ネットワーク構成まで。
わかりやすく言うならば、Aというアプリをまったく違うBというアプリに
入れ替えたとしても変わらない部分がサーバー。特定のアプリ専用に
パッケージを入れたりするのはアプリ構築
おそらくあんたがサーバー構築だと思っているもの大部分はアプリ構築になるだろう。
サーバー構築としてやることは大きく減少する。
アプリ構築部分がDockerイメージになることで、そのアプリはいろんなサーバー上で
簡単に動かすことが可能になる。Dockerが動く程度のサーバーさえ用意すれば
そこですぐにいろんなDockerで作られたアプリを動かせるからスケールしやすくなる。 >>562-563
回答頂きありがとうございます。
仰るとおりできるだけインフラにコストを掛けずアプリ側に集中したいという思いから
Dockerを使ってインフラ構築しようと見込んでいました。
ですがコンテナ = linux環境 とういうわけではなく
initプロセスがコンテナには存在しないという差異はあるわけですね。
一つお聞きしたいのですがDocker公式イメージとしてApache+phpなどが公開されています。
これらを使用して本番環境を構築した実績を探したのですが見当りませんでした。
実際のところDockerを使って本番環境を使ってる形っていらっしゃいますか
CIとか駆使して自動でDeployするとかそういう重そうなのはネットで拝見するのですが、VPSでApche+phpのような規模の小さい案件をDockerで楽するというのは可能なんでしょうか? >>563
「サーバー」の意味も知らん奴が長々と語っても後々自分が恥ずかしくなるだけやで >>564
Dockerで何をどう楽にしたいのかを明確にしよう。
サーバー構築をコード化したいだけならAnsibleなどの構成管理ツールを使えばいい。
アプリをサーバーごとパッケージ化してデプロイや構成管理を容易にしたいならクラウドでVMのイメージを使えばいい。
それでもあえてDockerを使う理由があるとすれば、
・手元のPCで開発してAWSの本番環境へそのまま移すなど、異なるプラットフォーム間でもイメージを共通化したい。
・アプリをちょっと更新するだけでもいちいちVMを作り直すのは時間がかかるから避けたい。でもサーバーの中身をデプロイ後に弄るのは嫌。
くらいだろうな。
そもそも小さいアプリならサーバーを弄らないことに拘っても大してメリットないしね。
パッチ当てるだけでもイメージをリビルドしなきゃいけないしホストとコンテナを別々に管理しなきゃいけないしかえって面倒臭いだけ。 >>567
>
>そもそも小さいアプリならサーバーを弄らないことに拘っても大してメリットないしね。
>パッチ当てるだけでもイメージをリビルドしなきゃいけないしホストとコンテナを別々に管理しなきゃいけないしかえって面倒臭いだけ。
まさに仰るとおりです。
テスト環境と本番環境を同じにしたかったわけです。
でも本番環境にDockerを導入するのはデメリットだらけでした。
rsyncで同期したほうが何倍も手軽ですし。
Ansible試してみます。 他の構築手順に関しての意見は別として
「サーバ構築をOSインストールまで、アプリ構築は含まない」という意見は
世の中すべてがそうではないと思いますね。
サーバと言うのは、client-server model で言えば、サービス提供をするプログラムのことなので
mail-server や http-server なども含めてサーバ構築という人もそれなりにいると思います。
というか、本来の定義ではこちらが正しいはずです。 サーバーより>>563のアプリ構築の方が、使い方がおかしいと思うのだが… そして「OS以外はサーバーではなくアプリである」ということだな…ッ アプリっていうのも本来は応用って意味しかない言葉だからなあ
アプリがポート開いててサーバーとして機能するなんてこともあるし
サーバーが何か別のサービスのAPIを利用して動作していれば
それはつまりある種のアプリケーションと言える 幻滅期に入った感じかな
Dockerが世に出て数年で急速にクラウドが進化・普及してインフラ自体がずっと柔軟になったから、
そもそもDockerで解決すべき問題があんまり無くなっちゃった >>576
自分で構築するならそこまで利便性ないかも
エンタープライズでは流行らんけど
個人でお手軽にDockerHubからpullするのはいいかなって感じ >>579
Dockerで解決すべき問題を
他の方法でどうやって解決するの?
例えばクライアントで動かしているアプリと
全く同じもの(当然OSやライブラリも同じ)を
サーバーで動かすのはどうやるの? 本題と関係ないけど、クライアントでというのは
「手元の開発環境」でってこと? >>583
今回は手元の開発環境という意味で書いたけど別にどこでもかまわないんだよ。
手元の開発環境の場合もあるし、CIサーバーの場合もある。
(プログラミングできない)テスターが触るテスト環境の場合もあるし
新しく入社した人の新品のマシンの可能性もある。
リモートのサーバーであったとしてもさくらVPSの場合もあるし
Amazon EC2の場合もあるし、Google Compute Engineの場合もある
いろんなしがらみでクラウド使えず自社サーバーの場合もある
むしろ今はDocker全盛期だけどね。AmazonもGoogleもDockerに対応しているから
Dockerインストール済みのインスタンスを使えばあとはそこにアプリ(Dockerイメージ)をデプロイできる
Dockerイメージ一つに(DBなどを分ける場合もあるけど)各種ミドルウェア、ライブラリなどが
入っているから、バージョンアップするときもインフラはなにを使っているか気にする必要がなくなる。
アプリとサーバーが分離されているのが重要で、OSのバージョンが上がったときもアプリが動かなくなるか気にせずに
行うことができるようになる。アプリはアプリで自分の都合がいいときにバージョンアップできる。 Dockerで解決することができる問題の一つとして
(ホスト)OSをアップグレードと
アプリのアップグレードを別にできるってことだな。
OSが提供しているライブラリや実行環境を使うと、
OSのアップグレードでアプリの動きが変わってしまう可能性がある。
だからアプリのテストが必要になるが時間がかかる。
OSをアップグレードしたいが、アプリを修正しないといけない。
アプリを修正したいが、OSをアップグレードできない。
Dockerがなければこういう悪循環に陥るw
Dockerを使えば(Dockerコンテナ内の)OSはアプリの一部として考えるから
さくっとアップグレードしてアプリのテストが行える。
そしてホストOSはアプリのアップグレードとは無関係に自分の好きなタイミングでアップグレードできる。
例えば重要な脆弱性が見つかったときとかね。 こうやって考えてみると
Dockerなくても良いって言ってるのは、
リリースするまででその後のメンテナンスまで考えてないよな。
古いバージョンをいつまでも使い続けるはめになるよ Dockerってよく知らんのだけどカーネルはホストのカーネルそのまんまなのよね?
ホストのカーネルがサポートしてない機能をDockerのイメージが必要としてたらそのイメージは動かせないってこと? >>587
それDocker関係あるのか?
アプリがカネールサポートしてない機能を
使おうとしたらどうなると思う? >>585
それコンテナでなくてもアプリごとに仮想マシン作れば目的は達成できるよね。
むしろDockerを使うことでホストを管理するコストが余計に増えてるだろう。
問題はその方法だと仮想マシンのビルドや起動に時間がかかることで、Dockerを使うことで解決できるのはそこだよ。 >>589
> それコンテナでなくてもアプリごとに仮想マシン作れば目的は達成できるよね。
それを言ったら、アプリごとにマシン作っても目的は達成できるから
仮想マシンすらいらなくなるだろw >>588
関係あるよ?
> アプリがカネールサポートしてない機能を
> 使おうとしたらどうなると思う
当然使えないね
そして君のその反応から見るとDocker使った所でそれは変わらないってことだよね?
じゃあホストのカーネルが理由があってそのある機能のサポートを外したらそのDocker上のアプリも動かなくなるね
じゃあ全然アプリのアップグレードとは無関係に自分の好きなタイミングでアップグレードできないね 場所の話をしたかったわけじゃないのです。
>例えばクライアントで動かしているアプリと
>全く同じもの(当然OSやライブラリも同じ)を
>サーバーで動かすのはどうやるの?
この書き方の場合 iOS などのアプリを開発してる人などからすると
「クライアントで動かしているアプリ」=「iOS アプリ」になるので
なんでそれをサーバ上で動かす必要があるのかになると思ったのです。
ここで「クライアント」という言葉は何を表しているかわかりにくいなと。
上にある、クラサバ的に考えるとおかしいですしね。 仮想マシンでは解決しないのは、
例えば仮想マシンで同じコンテナを2つを同じホスト名動かそうとしたら
ポートがかぶってしまって動かないってこと。
開発環境であればポート80で動くものを複数動かしたくなる。
仮想マシンはマシンであるがゆえに、
マシンの制約から逃れることはできない。
マシンにはホスト名が存在するから、そのホスト名に紐付いてしまう。
だから仮想マシン上で動かすアプリのために、仮想マシンそのものの設定変更が必要になる。
Dockerの場合はそれがいらないからこそ、いろんな場所に移動可能になる。 つかこの人Docker関係なく基本的なことが全く分かってないよね?
上の方で"サーバー"と"アプリケーション"をまるで直行する概念のように語ってたり"OS"がまるで万人の間で定義された1つの何かであるかのように語ってたり >>591
> そして君のその反応から見るとDocker使った所でそれは変わらないってことだよね?
なにが言いたいのわからない。
どんなものでも変わらないところと変わるところがあって、
変わらないところを提示されたところで、
変わるところは変わるんですが?w >>591
> じゃあホストのカーネルが理由があってそのある機能のサポートを外したらそのDocker上のアプリも動かなくなるね
カーネルとユーザーランドの違いがわかってないなw
Linuxのカーネルは互換性がきわめて高い。
ユーザーランドは変わりまくるから、OSのアップグレードを好きなタイミングで行うことはできない。
しかしカーネルは互換性があるから、アップグレードを好きなタイミングで行って構わないし
アプリはアプリでカーネルの機能は使わない。ユーザーランドの機能を使う。 >>595
わからないんじゃなくて自分がおかしいこと言ってることに気づいたんでしょ?
> さくっとアップグレードしてアプリのテストが行える。
> そしてホストOSはアプリのアップグレードとは無関係に自分の好きなタイミングでアップグレードできる。
> 例えば重要な脆弱性が見つかったときとかね。
変わるところは変わるから、その変わるところに該当するケースではさくっとアップグレード出来ないよね? >>597
変わる所に該当するケースを言いなさい
ユーザーランドしか使わない普通のアプリばっかりなのに
極論を言うばかりで現実問題ってのをわかってないのかな。 >>596
そんなこと分かってるよ?
カーネル内部のインターフェースは結構変わる、ただしカーネルとカーネル外のインターフェースは変わらない
俺が言ってるのはカーネルコンフィグで変わる部分の話だから >>598
ずれるからレスは1つにまとめてくれないかな カーネルの機能に依存したものでコンテナで動かすようなものは
殆ど無いので気にしなくて良いのではと思います。
リスクとしてあるのは当然だが、それが問題となるような人はわかってる人か
アプリケーションコンテナでやるようなことではないことをやろうとしている
まったく分かってない人なので無視したほうが良い気がします。
たまにこれを Docker の問題とする人がいますが、具体的に何をする場合に
問題に成るのか正直わかりません。kernel の version や config が違うから
問題と成るアプリケーションは殆ど無いです。
例として、nvidia-docker などはホストの kernel(というかdriver)に依存するような気がしますが
これはそれなりにわかってる人が触るものですし、提供側も driver と docker command までを
セットで提供しているようなのでかなり特殊です。 >>593
今時のクラウドのVMなら使い勝手は起動時間以外はコンテナとそれほど遜色ないよ。
設定も外部から投入できるし。
開発環境とのイメージ共有だって、Dockerfile使ってるんなら、その代わりにシェルスクリプトや構成管理ツールで
ローカルのVMとクラウドのVMで同じVMを作ることは可能だろう。
問題は起動時間、それがDockerを使う意義だよ。 >>601
俺に対してかな、いやいやDockerの問題だなんて思ってないよ
俺の少ないDockerの知識で考えても、それを問題だと言う人はDockerが何を目的としたツールか理解してないってだけだと思う
"問題"ではなく"特性"だよね
ただそういう特性を無視してDockerマンセーしてるのは逆に特性を問題だって言い張ってるのと方向が違うだけで中身が同じだから気になっただけ >>603
たかがツールのことで、1% のことを問題だと叫ぶのとそれを無視して残り 99% で
素晴らしいと喜ぶことが一緒とは私は思いませんね。
これが保証されるべきものや人の生死に関わるものならば同意できますがたかがツールです。
そのような人は、1% の粗を探して dis ることを目的にしているようにしか見えないですね。 >>604
意味がわからない、>>576の流れから私の最初のレスが>>587だからDockerをディスることが目的のように見られてるってことですか?
もしそうならそういう意図ではないしあなたがどう思うかだけの主観をレスされても困るんですが、まあご自由にどうぞ (´・ω・`)本番環境で使うもんでもないし、
ワイはDockerが滅びようがどうでもいいけど >>605
あなたが dis っているとか問題だと言ってるとは思ってませんが、
docker を讃えてる人と問題だと言ってる人が中身が同じだと仰ったので反論しました。
# twitter などでは、この点に関して dis ってる人がたまにいますね。
ちなみに、kernel の違いに関してですが、docker のホストでの kernel の違いによる影響は
技術をそこそこわかってる人は突っ込みたく成るかもしれません。
ただ、docker を使ってる上でこの特性は実用上無視して問題ないです。
漠然と気持ち悪さや不安感があるのはわかりますが、一般的なアプリケーションコンテナにおいて
具体的に何が問題と成るか考えれば特にないというのは当たり前のことです。 >>607
> docker を讃えてる人と問題だと言ってる人が中身が同じだと仰ったので反論しました。
なるほど、私の中でその部分は完全に私の主観を述べただけスルーされるもの(どう感じるかは正誤の2択ではないのでそもそも反論には意味がない)だと思っていました
主観同士をぶつけた所で意味はないのでそこはどうでも良いですね
> ちなみに、kernel の違いに関して
> docker を使ってる上でこの特性は実用上無視して問題ないです
それを決めるのはあなたではなくユーザーです
そしてあなたも認めているようにhostのkernelに依存しているのは動かしようのない事実です
(Unikernelとかいろいろ方向転換しようとしているようではありますが)
少なくとも私は、今の所Dockerはhostのkernelを使っている以上、hostのkernelをバージョンアップした結果namespace周りにバグや理由があってそもそもnamespace周りを無効にするような変更があればまともに動かなくなる可能性があるなど、
> ホストOSはアプリのアップグレードとは無関係に自分の好きなタイミングでアップグレードできる
> この特性は実用上無視して問題ない
とまで言ってしまっていいものでは無いと思います >>607
端から見てて思ったんだけど、(ここで)dockerを讃えてる人って
仮想マシンでいいじゃん?という問いにとんちんかんな答えしか出さないんだよね。
すべてにおいてdockerは素晴らしいんだ!って頑張っちゃうの。
だから、そうじゃないケースもあるだろう?って言う話をすると、
何でディスるんだとか技術的なこととはほど遠い話をし始める。
そういうの見てるとdockerがどんどん怪しげに見えてくるんだ。
まあおれがどう思うかだけの主観だがw メリットが分からんからと言って怪しげは言いすぎだろw >>608
「アプリがカネールサポートしてない機能を使おうとしたら」という話がきっかけなので
そうではなくコンテナエンジンが必要とする機能が無い場合の話ならばそのとおりですね。
どちらもアプリケーションを動かす上で必要という話ならばそのとおりだと思います。 >>610
いや、メリットはあると思ってるよ。ただ万能じゃないよねというだけ。
仮想マシンの例を出したけど、それだって別に万能じゃない。
ただ、過度なdocker推しを見てると、うさんくさく見えるってだけ。 あーこれがトレンドでなんか新しいものできたから使わなきゃ!みたいなのってあるよね。 >>609
docker 自体が、単なるコンテナ/VMと比較して技術的な面ですごいことは
それほどないので docker の話をする場合にその話をしても無意味ですね。
それこそ「昔から jail が合ったのに」と言われて技術的にはそうですねとしか言い様が無いです。
# hyperkit/vpnkit あたりは技術的にすごいなと思います。
docker の良い点はそれらの技術を組み合わせて使いやすくしたこと、
その使いやすさを享受するためにはあるワークフロー(というか縛り)に乗らないとダメなことですね。
つまり、技術の話ではないです。
その縛りによる世界の中では素晴らしいと感じるのでそのように怪しげに見えるんだと思います。
ちなみにこの縛りが個人的には一番大きなメリットです。
このワークフローと何かを比較すべきであってコンテナとVMの技術の比較なんてほとんど意味ないんです。
608 でも書かれてますが docker も別にコンテナにこだわってるわけではありませんし。
# unikernel の開発者は hyperkit に流れたので、当分はコンテナを使うでしょう
上の dis に関しては twitter で「vm と比較して kernel 共有してるからdocker は使っちゃダメなんだ」
とたまに流してる人がいるので書いてますが、docker の本質はワークフローなので
なんで問題にならないそんなことで dis ってんの?という感想にしかならないです。 もっと気軽に使いなよ。こんな使い方をしてるよ。
・仮想環境より起動が早いので気軽に使える
・ちょっと試したい時にdockerhubから引っ張ってきて試してみる
・自分のメインディストリビューションで提供されてないバージョンの何か
が必要な時に、別のディストリをdockerで作って利用する。
・クロス環境がいくつかいる時にツールチェーンがよくわからなくなるので
dockerコンテナに閉じ込めておく。
・webサイトをそのままデプロイするため
dockerの前は仮想環境でやってたよ。vagrantも使ってたけど。 仮想OSは、様々な問題が出てくるけど、
Dockerなら、動くそのOS内での話だから、問題がない さすがに意味不明すぎる
仮想マシンは一つの独立したマシン以上でも以下でもない
もちろんそれ故の使いづらさはあるが、その理由も対策もシンプルだ
一方dockerはコンテナがホストや他のコンテナに容易に影響を与え、下手すりゃホストが乗っ取られる場合もある
別にdockerをdisるつもりはないが、さすがに>>619のような人任せの意識で
dockerのようなプラクティスの未熟な道具に手を出すのはどうかと思うわ >>619は頭を使わない信者臭がして気持ち悪いが
>>620
>一方dockerはコンテナがホストや他のコンテナに容易に影響を与え、下手すりゃホストが乗っ取られる場合もある
仮想マシンも同じだろう? dockerむちゃくちゃ使いにくいな
仕事だからしゃあなく使うけどプライベートでは絶対に使わない 一番あったらありがたいのはDockerfileを読み込んで
VPS上にサーバ構築できたらありがたいわけです。
いちいちAnsible勉強するのめんどくさい。 >>625
本質を見ようぜ
シェルスクリプトと同じだろ?それ Dockerfileで構築するとめっさ時間かかるよな
ならもうそのままimageで放り込めよと思う
Dockerfileはあくまでもソースコードで使うのはimage(バイナリコード)でしょ >>627
ベースイメージを多段にすれば、最終の構築はすぐ終わるぞ
わしはこの方法でイメージファイルが3G超えた docker-machineでdigital-oceanに構築すると楽なんですけど
これって本番運用可能なものなんでしょうか? v1.12.0で実装されたSwarmについて誰か説明してくれ
Amazon ECSに変わるものって認識でいいの? >>620
> 仮想マシンは一つの独立したマシン以上でも以下でもない
> 一方dockerはコンテナがホストや他のコンテナに容易に影響を与え、下手すりゃホストが乗っ取られる場合もある
アホすぎる・・・。
仮想マシンは独立したマシンだというのなら、
ホストどうのこうのじゃなくて
(ゲスト)マシンが乗っ取られる=(ホスト)マシンが乗っ取られる
ってことだろ。
仮想マシンが独立したマシンと言うのなら、
危険性はホストマシンが乗っ取られるのと同じだ。 そもそも犯罪者の目的はホストマシンを乗っ取ることじゃなくて
マシンリソースやそこにあるデータを奪うことなんだわ。
ホストマシンを掌握すればより多くのことができるようになるかもしれないが、
別にそれは必須じゃない。一般ユーザー権限であっても
そのユーザーの情報は奪えるわけだからね。
ましてやゲストマシンを奪えたならば、そのゲストマシンの
全データを奪えるのと同じ。ゲストマシンで何かを動かすんだろう? そりゃ
「被害の大小にかかわらずID:7bogyaJyが死んでお詫びします!」
というならID:7bogyaJyにとっては一緒だろうさ
君が言ってるのはそういうこと
何かあったとき切腹じゃなくて焼き土下座で済ませられるように対策しようというのはセキュリティの重要な考え方の一つだよ >>636
ならあんたはシステムを作らないほうが良いよw
物理マシンを使ったら被害は甚大だからね。
安全にシステムを保つことが出来る力がない人は
何もしない方がいい。 なぜ物理マシンを使ったら被害は甚大だと思うの?
物理マシンは複数のサービスが同居してるから乗っ取られたときの被害が大きく、Dockerだとサービス一つで済むってことか?
別に俺はそこを否定してるわけじゃないが、だとしたら君はDockerでホストが乗っ取られたときのリスクの大きさを認めてることになるね
Dockerでホストが乗っ取られたらその上で動作する全コンテナへの完全なアクセスを奪取されるんだから被害は甚大だ × 君はDockerでホストが乗っ取られたときのリスクの大きさを
○ 君は(コンテナ・仮想マシン・物理マシン・アプリ)でホストが乗っ取られたときのリスクの大きさを認めてることになるね
全部一緒だ。アホめ × Dockerでホストが乗っ取られたらその上で動作する
○ 仮想マシンが乗っ取られたらその上で動作する
○ 物理マシンが乗っ取られたらその上で動作する
なーんもかわらんw 勉強しろアホ目
http://paiza.hatenablog.com/entry/2016/06/07/Docker%E3%81%AF%E5%8D%B1%E9%99%BA%E3%81%A8%E3%81%84%E3%81%86%E8%AA%A4%E8%A7%A3%E3%81%A8%E3%80%81%E6%9C%AC%E5%BD%93%E3%81%AB%E6%B3%A8%E6%84%8F%E3%81%99%E3%81%B9%E3%81%8D%E7%82%B9
コンテナを単に実行するだけで、ホストや他のコンテナがのっとられる
コンテナは隔離環境で実行されますので、単純に(オプションを明示せずに)
一般的なコンテナを実行するだけで、ホストや他のコンテナがのっとられることは現状はありません(知られてはいません)。
ホストのディレクトリ・ファイルを共有すれば、ホストのファイルにアクセスできますが、
明示的に指定しない限り共有されません(-v オプションなど)。
ホストのファイルを共有すればホストにアクセスできますが、
これは仮想マシン(VMware, VirtualBox)でも同じです。 マイクロサービスとかをみると
サービスは独立しているしエラーも他のサービスに影響は与えない
ということはサービスの一つを乗っ取られたとしても
他のサービスには影響を与えないから
影響は限定的ということになる。 Dockerを開発に導入したくて上司に相談したんだけど、コストメリットを示せと言われた。
実際どのくらいでるもんなの? コストメリットがあるからDockerを導入したいんじゃないのか? 作ったあと開発の手を離れてしまうようなシステムならメリットは全く無い
開発チームにとっても運用チームにとっても面倒臭いだけ 2chで聞いたら名無しがこう答えた、で上司は納得するのか? >>645
まさにこれなんだよな
メリットなんてない
新しいおもちゃ触ってみたいだけ
でもそれは秘密 >>643
そもそも何でDockerを導入しようと思ったの?
その質問だと目的と手段がごっちゃになってるように見えるんだけど CI回せないならメリットは無いね
開発効率を直接向上できるのはCIであってdockerはそれを実装するためのツールにすぎない
>>649も言ってるけど目的と手段をごっちゃにしてはいけない >>649
正直いうとごっちゃになってる。
Docker使ってみたいだけ。
だって世間で流行ってるものを使いたいって技術者なら誰しも思う事だろ?
でも費用対効果とか経営者目線で見られると説得しづらいんだよ
技術者と経営者の違いだな 実際コストメリット出す能力もない人間が使っても博打にしかならないと思うぞ >>651
よくわからないんだけど、ライセンス料がかかるわけでもないのに費用対効果出せないと新しいツールを使うことも許されないの?
そんなこと言い出すと一生新しいツールは使えないってことになるけど
Dockerに興味がある人数人でちょっと使ってみて、メリット・デメリットを洗い出してチーム全体で使うかどうか相談するもんじゃないの? うちの会社(典型的な請負SIer)でもサーバー系のインフラチームがDocker試してるらしいけど、
コード一行弄るのに客に見積回す会社でしかもアプリのコードを見たことすらないインストール屋が
Docker触ったところでどうするのか甚だ疑問 >>653
実際にやってもらうのは下請けなんだよね
下請けにDocker使ったら効率化できるでしょってやってもらいたいの
その検証費用とか予算取りしないといけない >>655
下請けに投げるような開発でDocker? 正気か?
煽りでも何でもなく、Dockerで一体何をどう効率化することを期待してるの? CIじゃなくて
環境をコンテナ化して運用することにメリットないの? VMを立てるまでもないような、たまにしか走らないバッチ処理にはいいんじゃない
最近はそういう目的のためにAWS Lambdaみたいなのもあるからメリットはオンプレ限定だけど >>655
酷すぎる
バズワードで現場を振り回す無能上司の見本 理由は「俺のモチベーションが上がるから。」
で通っちゃったりする。
もしくは「とりあえず使ってみないとメリットもわからないでしょ?。」
とかw 下請けは効率化する提案持ってこないのよ
理由は人月で見積もってるから稼働がかかる程儲かる仕組み。
だからこっちから効率化案を出さないとやってくれないので。
Dockerを導入してもらって効率化をはかりシステム費用を削減できるかなって思ったけど無理そうだね。
本当に日本のシステム産業って糞だわ 効率化提案って、そもそもコンサルティング事業なんだからそれなりの額払わないとやってくれなくて当たり前だと思うけど。
それを下請けがさも当然のごとく提案してくると思ってるなんておかしくない?そんな非常識的なことがまかり通る業界なのかわからないけれど。
コンビニバイトが、こうすればワンオペでも回せます!トラブった時の責任は俺がもちます!ワンオペにした分働けなくなって給料減るのに大変になるけど!
とかっていう提案をわざわざするとは思えない いるんだよねこういうアイデア出すだけで有能気取りの無能
そらこんなのが上流にいたらクソ産業化しますわ >>662
>>663
それなりの金額は払ってるしこれからも払うよ
まあ、君たちは大手と仕事したことないのは分かった
まあ生きてる世界が違うんだろうな >>664
で、どう効率的で費用対効果があるの?
まさか自分でなにも考えずに人に聞いてるわけじゃないよね
まず自分でどう思ってるの? 上司からコストメリット出せと言われて愚痴ってるレベルの人間が何言っても滑稽だわ
生きてる世界が違う、私もそう思います 自社開発やってるところが一番働きやすいなって一連の流れ見てて思った ほんと、自分の無能さは棚に上げて「Dockerが」「下請けが」「俺は大手だから」みたいな >>664 を見ると可哀想になってくる >>664
コンサル料払って実際に下請けする業者にdocker使った改善提案出してもらえばいいじゃん。勝算があるなら出来ると思うんだけど >>669
だから下請けは出してこないんだよ
Docker使っても本当に効率化にはならないのかもしれないし、もしくはエンタープライズには品質的に時期尚早なのかもしれない、
効率化すると人手がかからなくなるから売り上げへるからなのかもしれない
そこの見極めが難しいんだよ パラダイムシフト寄りの仕組みに見えるよね
着眼点としては、規模は異なるけど、メインフレームからオープンシステムへの移行に近い
メインフレームでもできるにも関わらず廃れた訳が理解できてないとこれを「知る」ことすらモチベーションが上がらないだろうね。上記を加味すれば、下請けが出してこないタイプの技術なわけだが、当然わかるよね ↑そもそもこいつらDockerを理解してないんじゃない?
Dockerだけ見たら仮想空間で包んでいるだけでメリットなんてなく余計なコストがかかるだけだけど
マイクロサービスをアーキテクチャとして組み込めば開発時のメリットが増えるってことなんだから。 シンプルに準備も勝算もなく思いつきで陳情して玉砕しただけだろ
ここまで投入ポイントも推計もまったく出てきてない
後出しする情報すらない人間に何聞いても無駄 酸っぱい葡萄程度の教養もない人間を抱えてる腐った大企業にはメリットないから使わないほうがいいよ
ITの巨人がこぞってDockerと提携出資してるし俺も価値を知ってるから使うけどお前には関係ないよ
大手と仕事したことのある大手じゃないお前の企業に帰りなさい
外に出ても恥をかくだけでつらいでしょう 恐竜に体温調節機能は要らない
メリットがないと言うのはそういうこと
開発が楽になるなんて技術者使い捨ての会社には不要だからさ SI系ならバッチ処理の運用に使うのはアリだね
塩漬けにできるってのはドカタITには非常に受けるし、開発や運用やインフラの体制をほとんど変えずに導入できる 結局「メリット」は誰もわからないわけか
ここもレベル低いな >>670
お抱え業者じゃなくて、ちゃんとDockerの導入実績のある業者に打診しなきゃダメなのは当然では?
大手のお抱えは、大手と同様安定重視でリスクとらなさそうだもん
技術を理解しようともせずに下請けにDocker流行ってるから使ってみてくんない?コスト下がるかもしれないし、とか丸投げしてくる大手の発注元とつきあってくためには、
うちはそういうの出来ませんからって言って新しいことに挑戦しないで旧態依然の方法で今までと高い金取ってた方が楽だと思うもん
確かに、>>661で言ったとおりに日本のシステム産業って糞なんだろな。上流が腐ってるから下流も腐るしか無い >>682
まさにそれ
腐ってるんだけど、唯一腐ってない俺がDockerでやるって上を説得さえすれば軍隊のごとくそっちに向かうのも事実。
サラリーマンとしてはいろいろ根回しうまい方で説得する自信はある。しかしDockerとかディープラーニングをうちの下請け(グループ会社なんだけど)がちゃんとやってくれるか不安なんだよね。 >>678
開発岳じゃなくて、運用が楽になるんだけど >>683
似てるけど両方とも下には出してない
というか、DLなんて下請けに回したところで何もできんよ。スクレイピングが関の山 >>682
下請け側としては、コストが下がったとしても黙ってるよなw
従来と同じ金をもらってればいいんだし。>>670はアホなんだろうな。 下請けにおんぶに抱っこしかできない元請け様が恥をかいただけでしたね
SIerとは思えない。製造業の窓際システム部門かな? >>686
普通はそうだよね
効率化して原価下がったとしても、高く売れる限りは高く売る
とはいっても、競合に低コストで売り込まれて切り替えられる可能性がある分野だとそんなことはないだろうけど
新たな手法を用いて効率化できるかもしれないけど、テストケースを膨大にこなさないと本当に安全かどうか分かんない、みたいな場合なら、
黙っては効率化しないよな。リスク回避を考えると。
本当に新手法を取り入れてコストカットしていきたいなら、ちゃんと下請けと元請けが協力して共通のゴールを目指せるような体制を作って、
上手く行く行かないにかかわらず検証費用を支払っていくような仕組みにしないとうまくいかないと思うんだけどな 受託業者の開発にDocker順次適用なんて無理だと思うけどまあやってみればw ここは中小企業の低レベル技術者達の吹き溜まりみたいな所だからこんな質問お門違いだろ
フェイスブックとかで質問してみれば?知らんけどw Docker使うメリットはミドルウェアのバージョン固定のため
じゃダメなのか? イントラ限定のアプリやバッチならそうだけど、そういうところにDocker使ってるのは少数派じゃないの?
ベアメタルだろうがDockerだろうがセキュリティパッチ当てなきゃいけないのは変わらないんだから、
パブリックなサイトでセキュリティのためだけの更新が多いなら、いちいちイメージ更新しなきゃいけない分手間は余計に増えるよ 普通のLinux>セキュリティアップデートは自動
Docker内のLinux>固定されているので手動でセキュリティアップデートする必要がある。 (´・ω・`)トラブって責任追及された
やっぱ安易に導入したらダメだわw 導入しなくてもトラブったら
責任追及されるんだが? 俺が責任追及する立場なら、今後一切のDocker使用を禁じる通達を本人から全社員に出させるかな
技術者には謝罪以上に最も屈辱的なことだろう >>698
そういう通達出す人って無能な上司感半端なくね?
学校でハサミを使ったトラブルがあったらハサミを使用禁止にした教師思い出すわ >>694
ぜひトラブった原因をqiitaとかに書いてくれ。ここに書いても便所の落書きにしかならないからな 同意同意
昔はココに書いてる事も役に立ったけど
今は全く使える事が無いのが残念 人が消えてしまったこともあるが
検索にかからなくなったのが大きい Dockerそのもので話し合うことがなくなった
figまではよかったが、オーケストレーションとかやってる奴いるのかよ? もうみんな歳を取ったんだよ
新しい技術に追い付けなくなったんだよ インフラ系の新技術は枯れてくるにつれて話のスケールがでかくなってきて
半分趣味で触ってるような連中はついていけなくなるのが常 つうか、未だに何がうれしいのか全く分からない。
作ってる人が楽しいのは分かるし、バズワードでドヤ顔したいだけの
半可通がうれしいのも分かるけど、実生活にどう影響するのかと。 電気はシステムが出来たから、>>707みたいなバカでも嬉しさは分かるだろ。 古いOS動かしてるマシン用のrpmとか作るときで、そのマシンには開発環境入れたくないみたいなときに結構役立ってるけどな 半分趣味でやるのに手軽で便利だなーって感じ
もちろんDockerfileを一から書いたりはしない Dockerでサービスを再発明するよりクラウドネイティブでいいじゃん
AWSロックイン? 何が問題なの?
というのが主流になりつつあるよね。
Docker使うようなサイクルの短いアプリなら尚更。 >>715
クラウドネイティブってAWSを使うことじゃないよw
「Dockerを使うことでクラウドネイティブにしやすくなる」
こういう使い方をする。 最近dockerを触り始めたけど、
os updateがあった場合普通どういう手順になるのがよくわからない。
docker fileにupdateを書いておいて、
イメージを生成しなおして、旧コンテナ破棄?
それともコンテナ中で手動(or cron)でupdateする? >>719
ベースイメージを取得し直してリビルド
それが負担になるほどアプリの更新頻度が低く、かつ塩漬け運用もできないというならその用途はdockerには向いてないよ >>720
ある程度自動で更新出来るようにしておけば楽だけどね。 確かに面白い技術だけど、これとWineを使ってMinGWの(えせ)ネイティブ環境を作るのって、出来るのかな?(´・ω・`) ホストがWindowsの場合VMwareなどの仮想環境下のLinuxに比べてパフォーマンス的にはどうなんだろう? >>725
>>724はホストがWimdowsでLinuxコンテナは無いって話だろ Bash on Ubuntu on WindowsのLinuxカーネルエミュレーション機能が
完璧になれば、WindowsでLinuxカーネルを使うこと無く、Linuxコンテナを
動かすことができるようになるけどね。
最近Bash on Ubuntu on Windowsの開発活発だし。
BashからWindowsアプリ起動できるようになったって。 できたら教えてくれ…と言いつつ、開発はlinuxとmacばかりになったな… 職場でlinux禁止されてしまったので期待!なんだが、
Windows 7 pro以外だめっていわれてるんで意味ないんだよな。 VPSで数十人が使うWebアプリを公開しようと思ってるんだけど、
実行環境を含めたバックアップ目的にmondorescueを検討していたら
外部DB+Dockerコンテナという選択肢もあることに気付いた次第
もちろん外部DBは定期的にバックアップ取ることにするけど
可搬性から見てどっちが良いですか?
あるいは、外部DB+Dockerでうまいことバックアップとる構成があれば教えて下さい Dockerコンテナというのは単なる1プロセス。プログラム。
バックアップを取るべきはデータであってプログラムではない。
だからDockerコンテナはバックアップする必要はない。
バックアップを取るのは外部DB。
つまりは普通のバックアップ方法と何も変わらない。 >>732
スナップショット機能のあるVPSやIaaSを使えば?
1台で運用するならDockerなんか余計な手間が増えるだけだぞ >>733,734
なるほど、どうもありがとう
スナップショット機能のあるVPSを見繕ってみます 将来的なクラウド適用領域の拡大を考えるならEC2がいいのでは
業務系ならさすがにAWSはクソ便利だよ 開発現場で窓OSなんか、窓から捨てちゃえばおkだってば。 Dockerが動かないのはお前の愛するMacも同じじゃん
お前が言っているのはWinもMacも投げ捨ててみんなデスクトップLinuxを使えということだが、自覚してるのか? VM上でということなら Win も Mac も動くな。
Docker for Mac も Docker for Windows も所詮 VM上の Linux。
Docker Toolbox とは VM 周りの実装とパッケージングの違いでしかない。
一応は Windows は Windowsコンテナならネイティブで動かせるし、
Docker for Windows にもクライアント側の Linux[VM] <-> Windowsコンテナ の
切り替え機能がついたらしいが DockerコンテナっていうのはLinuxカーネルを共有するものなので
Macでネイティブに動くことはない(MacはLinuxカーネルではないから)
もしOSがLinuxカーネルを完全にエミュレートできれば、
Dockerコンテナも動くだろうけどね。
Bash on Ubuntu on Windowsは、WindowsでLinuxカーネルを
不完全ではあるがエミュレートしてるので、これがもし完璧になれば
WindowsでDockerコンテナが動く可能性はある。 wine-linuxとBashOnWindowsなら前者を選ぶのがここのたしなみと考えていたのだか… Docker使う人はこの板では少数派のいわゆる普通のLinuxユーザー(つまりサーバー系)なので
手元の作業端末はだいたいWinかMacが基本だと思うよ この手の技術は進化が早いからついて行けないのはしょうが無いな http://www.boycottdocker.org/
ちょっと極端な意見もあるように思うけど、まあそういう人もいるかもね。 VM vs コンテナと言うが、台数ベースではVirtualBoxの上でDocker動かしてるのが最も多いというオチ。 普通にクラウド使うだけでだいたい解決しちゃうからなあ
Dockerを運用できるほどがっつりインフラ作り込んでて
さらにDockerのメリットが得られるほどバリバリ開発してるようなシステムって
そんなに沢山あるとは思えないな hyper-VはVirtualBOXと共存できないのがつらい > Dockerを運用できるほどがっつりインフラ作り込んでて
何が必要なんだ? インフラを作り込まなくて済むのが
Dockerのメリットなんだが。 >>751
単にWebサーバーを稼働とかならdockerなくてもいいげど、役割持たせたコンテナを運用したいならdocker使うのがよさげ。 >>755
インフラに手間かけたくないなら出来合いのPaaSや普通にEC2のAMIとか使ったほうがよほど手軽だよ
Dockerだとどうしてもセルフサービスの部分が大きくなるし、
独自に作り込めばその分クラウドプラットフォームが提供する便利な機能も活用しづらくなる
良く言えばベンダーロックインを避けられるということでもあるけどね >>759
お前分かってないだろw
AMI or Dockerじゃないんだよ。
AMI + Dockerというふうに組み合わせて使うんだよ。
っていうかDockerだけじゃ使えない。
クラウドプラットフォームが提供する便利な機能も
Dockerで使うんだよ。 >>760
だから、その二重管理のコストに見合ったリターンが得られるか? ということなんだけどな
お前はきっと次のレスで反発するだろうが、一度落ち着いてよく考えてみたらいい
お前、Dockerを使うために結構手間かけてるだろ? > だから、その二重管理のコストに見合ったリターンが得られるか? ということなんだけどな
二重管理なんかしてないが?
お前AMIを使ったら、すぐにWordPressが動くとでも思ってるのか? >>762
いや、まさかとは思うが、FROM wordpressでWordPressが使えるから簡単だとか
「インフラを作り込まなくて済む」ってそんなレベルの話をしてたのか? >>763
インフラ部分を面倒見てくれるのがあるからdockerを使うんだけど。 PaaS ならそのとおりだと思うけどなんでAMIを入れた。
AMI なんてただの OSイメージでしかなくそれ以上でもそれ以下でもない。
AMI を扱うということはIPアドレス設計やモニタリング、ロギングなどは
自前にしないといけなくなるし。
そうすると GKE などの DaaS を使うほうが結局手軽になる。
もう一つの大きな DaaS である ECS はあまりやってくれないらしいけど。
PaaS なら Docker と比較して手軽というのはその通り。
まぁ、そうは言っても Heroku がベータとは言え Docker サポートしちゃったから
ロックインを避けるために少し手間を掛けても
アプリの動作環境の構築とデプロイは Docker にしちゃうのも手だけど。 >>757
Windowsではだめだった。 VMwareが作った仮想ネットワークデバイスをVIrtualBoxが乗っ取ってしまって
VMwareのゲストがネットワークに繋がらなくなった。 Docker for Macのosxfsでのファイルアクセスが死ぬほど遅いんだけどどういう解決方法がオススメ? Docker for Macなんか投げ捨てて逆にLinux上のディレクトリをsshfsかなんかでMacにマウントしたら >>766
あらら、可能ならVmware communityに書き込むと改善されるかも。 >>766
Windows 7上で
VMware Workstation Player 12とVirtualBox5.0.16で共存できてるぞ
ネットワーク接続の
「VirtualBox Host-Only Network」のプロパティで「VMware Bridge Protocol」
のチェックを外して共存できたぞ >>770
Win7 上で Workstation 10と VirtualBox 4.3だった。 もう解決された古い問題かも。 コンテナ内のファイルを間違えて変更してコンテナが立ち上がらなくなってしまいました。
変更したファイルを元に戻したいのですが、コンテナが立ち上がらないので docker exec で入って
修正するということができません。
他になにか修正する方法はないでしょうか? >>772
盆栽じゃないんだから、再構築する材料はとっておこうよ。 他に方法がなければ作り直すしかありませんが、ファイル修正できるならそっちの方が早いので。
docker diffで変更されたファイルが確認できるんで変更をrevertする方法もあったらいいんですが。 ENTRYPOINTがコケるような変更を加えてdocker stop
で簡単に再現できるかと。 docker cp 使って変えたファイルを取り出して修正した後に
docker cp でコンテナに放り込んで start すればOK 10:00に問題を書き込んで13:30に解決、
かかった時間は3時間30分
> 他に方法がなければ作り直すしかありませんが、ファイル修正できるならそっちの方が早いので。
本当に早かったんですかねぇ(・∀・)ニヤニヤ 書き忘れてたけど、StorageDriver に aufs や overlay(fs) を使ってるなら実ファイルは
/var/lib/docker 以下にあるので最悪はそこからでも触れる。
変えてしまったファイルのパスの確認もできる。
ただし、DeviceMapper の場合だと簡単ではない。
btrfs や zfs の場合は試したこと無いから知らない。
http://paste.ofcode.org/QqeZLmXfui3HBPqTUDmD6j >>781
まともな使い方してればdocker buildで終わりだってことでしょ 死んだコンテナのイメージを差し替えて立ち上げることが可能ならそれでもいいんですが、
ボリュームを回収して新しいコンテナを立ち上げるしかないんじゃないですか?
まぁ、コンテナが立ち上がらなくなること自体がまともな使い方じゃないと言えばそうですが。 いや永続化が必要なデータは外部のDBに置くかVOLUME使おうよ
コンテナは常に使い捨てが基本だよ そこは使い方様々ですからねぇ。
自分も壊して構わない前提でいろいろいじくりまわしていて、仮にデータがすべて
失われたとしても作り直せばいいだけなんですが、その手間が省けるならそれに
越したことはないと。
というかそもそも>>772も、その問題を解決したいというよりも書いている通りそのまま、
そのような方法があるかどうか知りたいから質問したわけですけどね。 自分でケツも拭けないクソが偉そうに能書きたれてるな。哀れ >>786みたいな盆栽遊びが好きな人には、ビルドとかものすごい手間に感じるんじゃないの。 >>787
>>786のことであれば、ボリュームに入っているデータのことだけど?
ようはコンテナ立ち上げた後のアプリケーションの設定やなんか。 >>790
コンテナ立ち上げた時点でアプリケーションの設定なんか終わってるんだが? 当たり前のことを言うね。
コンテナにログインとかやるやつは
頭がおかしい。 overlayfsを使ってる方ってCentosなんですか?Fedoraですか?
無知な学生ですが、プロの皆様にお聞かせいただきたいです >>91
かなり遠い所へのレスだけどまさにこれ。
「へえ、docker使ってみるか」
「マ゛マ゛〜、sshdどご〜」
ってなったわ。 sentosではaufsがマージされなくなったのか
いつの間に お前らはどうやってDockerfile書いてるの?
手動で手順を確認しながらメモって後でDockerfileに清書? 複雑なときはそうするけど基本的にはトライ&エラーだな
前のステップをなるべく弄らないようにすればビルド時間はそれほど問題にならない
で一通りできたらリファクタリングして完成 同一ホスト配下でブリッジ接続の複数コンテナに対して標準のポートでhttp, httpsをつなぎたい場合、nginxだったりのリバースプロキシを用意するのが標準?
redmineやjenkinsだったりを使いたいと思ってるんだけど、Dockerの機能を使ってルーティング出来たりする? >>796
tmux などで上下分割して、上で docker run --rm -it debian bash して、試行錯誤
下では vim などで Dockerfile 開いて記述
ホスト側で透過プロキシとして squid を動かしているので(dockerで)、やり直しになってもそれほど気にならない。
コマンドの細かい挙動などをチェックしたい場合が多いので今のところは上の方法でやっているけど、
一旦 Dockerfile へは1行ずつ記述して最後にきれいにするほうが速くて良い場合も多いと思う。
1.13 からは squash も追加されるようなのでそこまでしなくて良くなるかもしれないし。 >>798
docker にはその機能はない。
nginx でのリバースプロキシで良ければ nginx-proxy というコンテナを起動するのが良いと思う。
これは、docker api が提供するどのコンテナが起動しているかなどのメタ情報とテンプレートをもとに、
コンテナ生成/削除時の設定ファイルの修正や、プロセスの再起動をしてくれる「docker-gen」という
アプリケーションと nginx を組み合わせている。
これにより、コンテナが立ち上がったり、終了したりすると nginx.conf を修正してそのコンテナへ
プロキシする設定の追加/削除を行い nginx の reload をしてくれる。
機能を実現するために、docker.sock を他人が管理するコンテナに見せないといけないので
そのセキュリティ上の問題点は理解すること。
https://github.com/jwilder/nginx-proxy
自動でなくてよければ、自分で管理する nginx を立てるのでも良いと思う。 >>799
オイラはローカルディレクトリをコンテナのホームにマウントして一通りやってからbashのHistoryから必要なものを抜いて作るな
会社の串が特殊なので一度通してからじゃないと安心できない >>796 だけどレスさんくす
わりと人それぞれなんだな
参考にさせてもらうわ >>800
詳しくありがとう。nginxでのリバースプロキシはVMで作ったことがあるから先ずそっちを検討かな。挙げてくれたコンテナも調べてみるよ。 >>796 >>802だけど複雑だったから結局>>796の方法でやってる
>>801の方法も良さげだなぁ
インストール時間が作業時間のボトルネックだね 会社でDockerのおすすめの本を聞かれたんだが、
なんか、Dockerって教科書的に学ぶより自分なりの使い方を編み出すほうがいいと思うんだが…どう答えりゃいいんだ >>806
その人もどこから始めていいかわからないんじゃないの?
読んだ本でいいのがあれば自分の感想も含めて教えてやればいいし、読んでないならそう答えれば > なんか、Dockerって教科書的に学ぶより自分なりの使い方を編み出すほうがいいと思うんだが…どう答えりゃいいんだ
バカか?
なんのために作られたのかを理解しなければ、
変な使い方をして使いにくいと愚痴る馬鹿ができあがるだけだろ 初心者ですまんが、dockerに固めたライブラリ類のアップデートってどう管理するの?
セキュリティ警告出てるバージョンが含まれてるかどうかscanする方法はある? >>806
プログラマならDocker教科書
インフラ屋なら知らん オーライリー本でも買っておけば? 現実として手間やリスクをペイするかはともかく、少なくとも転職活動のときのネタにはなる インフラを保守的に運用しつつ、スキルのあるアプリエンジニアに最大限の自由を与えることができる
特にオンプレだと顕著
もともとバリバリのクラウド開発でサーバーなんか使い捨てだよという感じなら起動が早いくらいしかメリットはない アプリのデプロイの話をしてないやつは
エセインフラエンジニアだから
話半分に聞いていればいい >>816
オンプレはほぼ同意見。
あとは、開発者の手元に似たような開発環境を用意しやすいぐらいかな。
クラウドに関しては、GKE や ECS がサービスとして存在していることを考えると
ある程度の柔軟性をもったパッケージングと配布(デプロイ)が準備され、
それが逆に一定のルールとなって縛っていることがメリットだと思う。
そのおかげでどのようにスケールするかなどがある程度決めれるから。
結局、オンプレもクラウドも一番大きいのはこのルールなのかなと思ってる。
ちなみにすごくどうでもいいことだが、docker が出た当初からインフラ屋の俺はこれを
アプリエンジニアとのプロトコルと呼んでいる。 macvlanでapacheを複数ホストする方法を教えてくれ。
dockerホストのVMにmacvlanでapacheコンテナを複数作成。
それぞれmacvlanで192.168.0.1, 192.168.1.2を割当。
dockerホストと別のVM(192.168.0.254)から192.168.0.1, 192.168.0.2へのpingが通らない。
192.168.0.1と192.168.0.2の間ではpingが通る。
誰か助けてー
■参考(公式ドキュメント)
https://docs.docker.com/engine/userguide/networking/get-started-macvlan/ >>819
docker host が VM 上だと macvlan が通らないことがあるのでそこのチェック
(コンテナの mac が vm とは異なるものなので、virualbox だと自動的にフィルターされる。
そのため、promiscuous mode にしないといけなかったと思う。)
単純なデバッグとしては外部からの ping がホストまで届いているか tcpdump してみれば?
macvlan モードはオンプレなら何も気にしなくていいけどVMだとそっち側で色々されちゃうので
一筋縄ではいかないのがちょっとつらい。
あとは、ホストへの通信が簡単にはできないのも辛い。 >>820
コメントありがとう。
ググってるだけでまだ触れてないけど、難易度高そうですな… 社内用にgitlabとか簡単に構築したくて入れたけど便利だな
nginx-proxyとかgitlab-runnerにdocker.sock渡してるの怖いけど そうそう、そういうのを無効化するのが醍醐味
わかって使えばこの上もないツール 自作のアプリならいいけどそういう他人が
作ったものっていうのはデータの永続化が困る。
どこを保存すればいいのか、調べりゃある程度わかるけど
本当にそれだけでいいのか判断できない。
データディレクトリってちゃんと別れていればいいけど
設定ファイルは別の場所だったり、
「管理画面から入れるプラグイン」は特定のディレクトリに入ったりで
コンテナ消したときにちゃんと復帰できるのか自信が持てない。 そういうものは、docker commit で頑張れなくもないけど、
コンテナが immutable であることを前提に設計されている docker を使って
運用するのは向かないものなので VM や lxc なんかで運用するしたほうがよい。
気になって追いかけるときに docker diff なりを使うのもありだけど
結局コード読まないと最終的に判断できないんだから
そういうものは docker 使うのを諦めたほうがよい。 そもそも出来合いのものをDockerで運用する意味はないわ
既存のDockerのクラスタがあるからついでに乗せるとか、
単発のジョブならありだけど Windows10でドライブマウントうまくいく?
日本語入ってると見れない Dockerは確かにロゴやサイトの美的センスはあるよな
LinuxオタのくせにGNU的な気持ち悪さを微塵も感じさせない 鯖だったのかアレは
個人的にはイカも悪くないと思う >>834
海の仲間たちのデザインも悪くない。
センスいいと思う。 このスレって技術者だけで、研究生なんかはいないのかな? 情報系の学生ならいるけど特に研究に使ってるわけじゃないな 今月のソフトウェアデザインを読んでdockerを始めてみたけど自分にどんなメリットがあるのか見出だせない...ラズパイ+dockerで機械学習とかやってみようかなぁ 今Docker実践入門という本で勉強してるけどとても楽しい
今まで必死に書いていた構築手順書とかから解放されそう インフラ系の人が構築を楽にしたいなら構成管理ツールをやった方がためになると思うけどな
Dockerはあくまでアプリのパッケージ化技術
そこを勘違いしてDockerに入ってきたインフラ系の人が結局 ? となったまま去っていくケースが多い DockerとImmutable Infrastructureとクラウドのせいで
構成管理ツールいらないんじゃね?って思ってるんだが
シェルスクリプトで十分でしょ ちなみにDockerfileはほぼシェルスクリプトと思ってる docker使ってるとubuntu14で一行で
git最新版(2.x)入れる方法とかクソみたいな
知識が必要になるのが辛い。
けどそれ以外は楽しいね〜 複数行で書いていって、完成したら ; でつないで一行にするだけじゃね? もっともなんで最新版gitをDockerの中に
あえて入れないといけないのかがわからんけど。
Dockerの中のgitは人間が直接使うわけじゃない
最新版でなくても動けばよかろう? 一行にするだけでも可読性が悪くなるよな。gitのsquashみたいな機能があったらいいんだけど。 前に
BEGIN # ここから
RUN なんとか
RUN なんとか
EMD # ここまで
を1レイヤーにすれば良いんじゃね?
みたいなIssueがあった気がするがあれどうなんたんだろう。
ぶっちゃけヒアドキュメントみたいなものが使えれば
一行である必要はないはずなんだよな >>847
go使うのにある程度新しいgitが必要だったのよ ディスク容量さえ増えなければ複数行でいいんだよね?
squash diskみたいなのが欲しい。rmしてそれやると、
イメージサイズが減ってくような奴w なんで?としか言いようがないな。
goは普通にバイナリ提供されてるだろ
goを使うだけなのにどこでgit使うんだ? goはビルドシステムがgitに依存してる
まあgoはバイナリがポータブルなのが売りなので、そもそもコンテナ内でビルドする必要はないんだが >>853
ほお、じゃあ外でビルドしてからgopath以下を
全部コンテナに突っ込めばよかったんかな。
イメージを小さくするにはそのほうが良いかも >>854
いやいや生成されたバイナリ一つで済むからワンバイナリ言ってるわけだし。
windows環境ならlinux用にバイナリ出力すればいいだけ
最近はワンバイナリですまないかもしれないけどね。 そもそもワンバイナリならdockerも要らないけどな 久しぶりに来たら squash の話してるけどすでに実装されてるぞ。
ただし、Experimental。
仕組みとしては、通常のbuildをしてできたイメージを1layerにする処理がまた走る。
内部的にはイメージが2つできる感じ。
手元のディスク容量的には損だけど、squash 前の繰り返しする場合に
レイヤーが再利用されるのでそういう面で便利。
使い方は、docker daemon を experimental オプションつけて起動して、
docker build --squash -t foo .
次の 17.03 か 17.04 あたり(バージョニングルールが変わった)で experimental 外れるんじゃないかな golang を docker で build する意味に関してはいくつかある。
vendoring tool (依存パッケージのバージョン含めた管理)の代わりにセットアップされたイメージを用意するという方法。
最近は golang から dep という公式ツールが出て今後の方針が見えてきたとはいえ
テストなどを考えると vendoring の処理自体を毎回するとか面倒なのでコンテナ使うのは悪くないと思う。
ほかは cgo の問題(golang の中で c をインラインで書ける機能)。
golang の net/http はそのままで名前解決の部分が libc に依存しているので build 環境に左右される。
これは debian などで glibc 環境で build したイメージが glibc へダイナミックにリンクされてしまい
Alpine の musl libc で起動できないという現象(または逆)がある。
net/http の場合は CGO_ENABLED=0 や -a オプションなどで golang での実装へ回避できるが、
mattn/go-sqlite3 など中身は C のライブラリへのリンクしか無いと言うものが結構ある。
mattn/go-sqlite3 場合だと動作環境に sqlite のライブラリを入れるか
ldflags などを工夫して static バイナリをなんとか作るかという面倒なことをする必要がある。
docker イメージならライブラリ突っ込んで置けばいいので楽。
あとは、コマンドの統一。
いろいろなコマンドを docker run hoge 的に統一できるということ。
docker hub に登録しておけばどの環境でもこのコマンドで取得して実行できる。
golang の場合は容量的に空のイメージである scratch イメージを base にバイナリ放り込むという感じかな。
これを頑張ってる例としては whalebrew。 なんでそこまでしてGoなんて糞言語使わなきゃいけないんだ
デプロイがシンプルであることだけが存在価値の言語なのに >>860
お金のにおいがするからじゃないの?
なんか出してもいない広告で100億円儲けてる業界みたいだし。 普通に仮想マシンの中にLinuxとか色々ソフトを入れてサーバー立てるんじゃなくて
Dockerを使うと良いことあるの? >>862
バイナリファイルを一個コピーするだけで
アプリが使えたら楽だろ?
wget 取ってて/usr/local/bin あたりに入れて
chmod +x するだけで使える。
アプリを動かすまでにApacheを設定してPHPをインストールして
WordPressをインストールして動かすの大変だろ?
Docker使えば、docker run するだけで使える 今時そんなのはPaaSでワンクリックだけどね
Dockerはむしろ、アプリ個別に好き勝手に環境をガンガン作り込んでも
インフラや運用体制が破綻しないのがメリット >>858
>>859
サンクス。squash期待だわ
まさにcgoもあってnvidia-dockerでgo使ってる。
何故goとか言われると辛いが便利なので使ってるわけで、
使うとなるとdockerに閉じ込めれたほうが便利なんだし、
いいじゃん俺が何使おうが、みたいな感じだよね >>862
VMより軽い。そんだけ。
VMで使えてるならVMでいいんじやん? VM1個しか要らないならメリットなし?
ただの仮想マシンは移したりするときに
イメージ全部運ぶの大変そうなのは分かる >>867
説明が面倒なんで説明してないだけ。
俺だったらdocker使えるなら全部docker使って、
どうやっても無理なとこだけVM使うとかするけど、
君、docker使いたくないんでしょ?ならVMでいいよ。
説明がメンドイ >>867
それはちょっと違う
Dockerを使うなら、これまでVM1個に色々入れてたものは複数のコンテナに分けて構成することになる
構成要素のそれぞれを独立して動作する一つのパッケージとして扱えるので個別の変更が比較的容易になる
変更せずに決まった形で運用するだけなら全くメリットはない、というか
全体的に見れば環境は当然1VMに比べて極めて複雑になるのでデメリットしかない >>867
Docker使い()はね、Docker使うことが目的なんだ。 >>862
環境を壊さないところかな。
OS1個でも色々な環境をつくれる。
お互い排他にできるからRootで作業しても安心。 質問します
Exposeではない方法でdocker の外側からコンテナにアクセスする方法がわからないので教えていただきたいです
Bridge を用いるのはわかるのですが,いまいちよくわからないので ttp://christina04.hatenablog.com/entry/2016/07/22/193000
これでどうだろうか。 他にも
https://docs.docker.com/docker-for-mac/networking/
Known Limitations, Use Cases, and Workarounds
There is no docker0 bridge on macOS
I cannot ping my containers
Per-container IP addressing is not possible
Use cases and workarounds
I want to connect from a container to a service on the host
I want to connect to a container from the Mac RPi3 HypriotOS なので Mac の件は大丈夫です.ありがとうございます.
ですが,>>874 のブログだと結局外部からアクセスするには expose するしかないのでしょうか Win10 homeでも動くようになるってのはどうなったんだっていう WindowsコンテナにしてもDocker for Windows にしても Win10 Home で動くという話は聞いたことはないな
まぁ、対応するとしたら Microsoft なんだけど hyper-V を home 持ってくることは無いんじゃないかな 用途は研究です
コンテナ内のアプリケーションと外部のアプリケーションで通信を行いたいのです
ホストosのiptables をいじって転送するように設定したら可能でしょうか
コンテナから外には繋がるので >>881
研究とはDockerでいろいろ変なことをやってみる研究ですか?
それともDockerを実務で使うための研究ですか? >>884 docker は単にデーモンを分けて動かしてメンテナンス性を上げるためです Docker v17.03がリリース。今月からバージョン番号制度が変更になり、毎月リリース体制に − Publickey
http://www.publickey1.jp/blog/17/docker_v1703.html >>887
毎月リリースはいいんだけど、安定板は平行して出てこないのかな。 Windowsで
VirtualBoxで試したらIOがめちゃめちゃ遅くてまともに動作しない
Hyper-Vではそんな事は無かった >>891
VMのLinuxで動かしてるからスレチではない。 >>892
で、Dockerの話題はいつ始まるの? docker、すっごーい!たのしー!
マジこれヽ(´ー`)ノ 今のDockerはRHEL6/CentOS6をサポートしないと言ってるけど、実際のところはどうなの?
・サポートしないとは言っているが今のところ一通り動く
・一応動作するが一部問題がある
・動かない 動かそうと思えば動かせる。
でも、動いたCentOS6はもはやCentOS6ではない。 なるほど、ありがとう。
でもこれ↓意味わからん。
>でも、動いたCentOS6はもはやCentOS6ではない。 rhel7でもdocker動かそうとするとサブスク必要で
かつ彼等のecosystem使わないといけない風潮あるから
なんか嫌 Docker for WindowsでWindowsのディレクトリをボリュームとして使うと正常に動作しないっぽい
WindowsのファイルシステムだとLinuxコンテナに必要な機能がないからか
ファイルやディレクトリの所有者はそのままになるからか
大量にディスクIOが発生してGitLabの動作が重たいから
sameersbn/docker-gitlabだけWindowsのディレクトリを使ったら正常に動作しなくなった
素直にLinuxマシンを用意しろってことか windows10でアップデート後問題なく動いていたのにふと再起動かけたらShared Drivesで共有ドライブ認証出来なくなって困った
Apply押すと詳細な共有の設定も初期化されるしどういうことだ・・・ そもそも、そこまでして頑なにWindows使う人の気持ちがわからない… (´・ω・`)別にdocker入れなくてもいいんだけど、
dockerを入れて複雑化して誰も触れない環境にするために使ってるようなもんかな >>908
Windowsしか使えない人なんだからしょうがない。 職場環境とかだと割とOS限定されるし
どうしてもwindowsで実現しなくちゃ行けない場合もあるのかな?
ただ罵るだけとかlinux板も落ちたよなぁとオモタ 「Windows使ってる」が「Windowsしか使えない」に短絡するバカっていまだにいるんだなぁ。 WSL その81 - WSLでどのようなテストが行われているのか
https://kledgeb.blogspot.jp/2017/04/wsl-81-wsl.html
WindowsによるLinux互換レイヤー実装、
もうLinuxと8割ぐらい互換性があるようだな
DockerがWindows上でネイティブに動くという夢も
近いうちに実現するかもしれない。
そうなるとDocker動かすのに仮想マシンHyperVも必要なくなる windowsでないと使えない人たちが何しにここ来てんの?w Dockerコンテナに特化した「RancherOS」正式版リリース。Linuxカーネル上でDockerを実行、システムもユーザーもすべてをコンテナ空間に − Publickey
http://www.publickey1.jp/blog/17/dockerrancheroslinuxdocker.html マイクロソフト、Windows Serverのコンテナ機能でLinuxコンテナのサポートを発表。主要なLinux OSとLinuxKitに対応。DockerCon 2017
http://www.publickey1.jp/blog/17/windows_serverlinuxlinux_oslinuxkitdockercon_2017.html
WSL のようなものではなくて結局 Hyper-V 経由だけど「Hyper-V コンテナ」の実装として出してきたね。
すでに、Hyper-V コンテナで実装されている Windows コンテナと同様であると考えると、
Hyper-V でラップしてその中で kernel とプロセスが動く。
ただ、これをまとめて操作できるインターフェースが用意されるのかな。
docker run すれば hyper-v コンテナ経由で Linux の環境とコンテナが上る感じで engine は windows 側?
そうすれば、Docker for Windows みたいな専用VMを意識しなくて良くなる(この Linux が moby になるのかな)。
これがちゃんと実装されれば、windows 上では windows コンテナと Linux コンテナ混在で同じ操作性で扱うことができそう。
Hyper-V コンテナなら Windows10Pro でも動くのでその点も良い。
気になるのは Network と共有ファイルシステム。
Network は Hyper-V の設定で面倒なところだけど、Overlay に関しては windows/linux 混在できるようにわざわざしてくれてるので
使いやすく実装してくれることを期待。
https://blogs.technet.microsoft.com/virtualization/2017/04/18/ws2016-overlay-network-driver/
共有ファイルシステムは Docker for Mac でも性能や権限がよく問題になっているので
これがいい感じになるようならば、Windows で開発してもいいかなという人も増えるのでは。 意味の無いことだとは思うのですが
ドッカーッてsystemdな環境をinitな環境と切り替えて使えたり出来るもんなのでしょうか? dockerは仮想環境のディストリビューションは何になるの?もしかしてホストOSと同じ? >>921
ディストリはホストと別でもよい
ホストUbuntuでコンテナCentOSとかでもOK docker用に最適化されたCoreOSってのもあるからそれでもいいのよ coreOSは普通のディストロとはかなり使い勝手が違うから慣れてないのに使うのはオススメしないな
それとcoreOSはdockerじゃなくてrktだろ >>919
そこまでして、ホストでWindowsを使う必要がない。
窓は、窓でええやんと。 windowsユーザーが気軽にdockerを使えるようになるってことだろ
わざわざwindowsを使いに行くという話ではない
Linuxユーザーにとってはコンテナが増えることで利益を得られるんじゃないの dockerってカーネルが同じものを共有する≒システムコールが同じじゃないとならない
と思っていた
Win上で動くって結局のところvmwareと中身が同じでいいのかな?
一方でwin自体がcuiにbashを可能にする動きがあるから、母艦がwinでもlinuxと同じコマンドでdockerが操作できて会社で泣く泣くwinを使わせるクソ製造業の皆様もdockerの恩恵を享受できると >>930
WindowsもMacもLinuxカーネルではないので、
Docker用の仮想マシンを作成して、そこにLinuxをインストールして
コンテナを動かしています。
そのため、仮想マシンの設定(CPU数や搭載メモリ等)の影響を受けます。
ネイティブにDockerコンテナを動かしたいのであれば
Linuxカーネルの機能をOSが搭載する必要があります。
それをやっているのがBash on Ubuntu on Windowsで有名な、
Windows Subsystem for Linux (WSL) プロジェクトなのです。 >>931
一番の問題はファイルシステムじゃない?
その辺の問題は解決するんか ファイルシステムはfuseみたいな物を使えばどうにでもなるんじゃねーの だな。WindowsはISOファイルや読み書き可能なvhdファイルを
ディスクとしてマウントする機能がすでにある。
それ以前にBash for Ubuntu for Windowsだって書き込み先は実際にはNTFSのはずなのに、
lxfsとしてマウントされ、Linuxを動かすのに必要な情報が記録されている。
あとは、Linuxで動くアプリが正しく動作する事ができるlxfsというファイルシステムに
Dockerというアプリがデータを書き込むだけの話 Docker使ったら素人でも分散処理するWebサーバー立てられる? Dockerの運用なんかクラウドプラットフォームに丸投げするもんでしょ
PaaSのための共通パッケージフォーマット、それ以上でも以下でもない docker使って、開発の手間を惜しんで、
代わりに運用コストを上げてしまった
って話に見えるな。
実際、docker利用してるプロジェクトに、
後から参加するとそんな状態になってることが
多い気がする >>935
こういう質問が来るって事は、Dockerがなんなのか分かってないんだろうな。 >>941
そりゃREADME.mdでしょw
Dockerfileなんて、README.mdに書いて有ることを
自動的に実行できるようにしただけなんだから。
README.mdみてWordpressをインストールして
設定をvi使って書き換えてMySQLのセットアップしてって
やればDocker使わなくても同じことができる 仕組みを理解して、readmeに書いてあることくらい読んで、
そんでdocker使うなり使わないなりすればいいのさ。
理解せずにdockerでやる!とか、拾ってきたイメージで
ガチガチャやって、動かないとか言いながら散々いじって、
車輪の再発明みたいなことして、他の人に理解できないような
ゴミを作って、動きました!とかやるから質が悪い
まあdockerに限らずなんでもそんな感じだけどね >>937
たぶん、chrootとかlxcとかちゃんとやったことがないんだろうな。
おれだったら、systemd-nspawnのほうがイヤだw
(脱線:ちなみに、Docker、VMwareは好きだけど、vagrantも嫌いだし、JS系だったら、gruntも嫌いだ。grunt使うぐらいだったら、Rakefileでかまへん。)
Dockerなんか、chrootでtar、シェルスクリプトと同じだと言われればそうだけど、なんとなくDockerやろうぜとかだったら、結局めんどいってなるんだろうなーと。
意味のあるコンテナを作れていないだけな気がする。
なんとなくコンテナを拾ってガチャガチャだったら、あかんで。 VagrantもLinuxだとVMじゃなくてDockerコンテナが作れるらしいけど
なんかyml書くのが難しそう
Dockerfileの方が簡単に書ける docker大好きっ子の俺だけど、
dockerfileだけは氏ねよと思うわ 本番運用してない部門だから、dockerfileは書かず公式に外から設定ファイルを突っ込む形だわ
本番の人たちはわざわざイメージ作ってるのかな?めんどくさそう >>950
本番運用のシステムを作るとめんどくさいよ。
だからDockerをつかって、本番運用のシステムを
簡単に作れるようにするわけ 質問なんですが、「立ち上げ直後に落ちてしまうコンテナから、原因となるファイルを削除する」手段は無いでしょうか?
事例:
mongoのオフィシャルイメージから立ち上げたコンテナが、原因不明で立ち上げ後即落ちるようになった。
特定のファイル( /tmp/mongodb-27017.sock )を削除すれば良い、という情報を得たので削除を行いたいが、
普通に起動しても即座に落ちる(エントリポイントでmongodの立ち上げに失敗してシャットダウンしてる)ので、docker exec出来ない。
最悪、コンテナ消してイメージから再作成すれば良いのですが、本来的にはどのように対処すべきでしょうか? >>954
コンテナ消してイメージから再作成する
コンテナ自体にデータ持つ運用なんかありえないので問答無用で消してok >>954
「イメージから立ち上げたコンテナが…即落ち」
「コンテナ消してイメージから再作成」
なんか日本語が間違えてるのか、
運用方法が決定的におかしいのか。
普段どうやってコンテナ作ったり、立ち上げたりしてんだ? >>954
> 質問なんですが、「立ち上げ直後に落ちてしまうコンテナから、原因となるファイルを削除する」手段は無いでしょうか?
そのコンテナは破棄して、新たにDockerfileから作り直すだけ
簡単なこと >>954
つまり使い方を間違えて覚えているから最初から学習し直せってこと >>954
以前も書いたけど docker cp 使えば? VSCode+TypeScript+Node.jsのサーバーサイド開発環境作りたいんだけどどうするのかよく分からない
ビルド用のNode.jsとTypeScriptはDockerだけじゃなくてホストPCにも入れるのが普通なの? どういうことやVScodeを鯖側で動かしてVNCでもするんか? >>960
何をしたいのか書かないと誰もこたえられない。 VScodeで書いたコードをCOPYかVOLUMEで渡せばいいだろ
ローカルで動くの確認してからdocker内に渡す方が楽だろうけど
もしくはdocker内とVScodeをつなげて直接触るか dataボリューム作って複数コンテナからマウントした場合も
どこかのコンテナでflock()すれば他でもちゃんとアドバイザリロックできてるのか agettyとかいうプロセスにcpu食われまくるのってバグ? DockerホストOSとしてもAlpine使えるのかな
余ってるNUC使ってホストもコンテナもalpineベース おっしゃる通り書いてから自分でもそう思ってやってみました
普通にできました >>965
data ボリュームは Docker for Mac/Windows のような shared volume などを対象としない限りは
単なる bind mount でしか無いので flock などのファイル操作は可能です。 >>966
docker 経由で /bin/init を起動してるのだと思うけど docker コンテナ内で一部の権限が無い為に
agetty が無限ループをしてるようです
--privileged を使うと大丈夫みたいですね。--cap-add SYS_ADMIN だけでも大丈夫かもしれません。
getty が恐らく原因ですので(systemd の場合ですが)
systemctl stop getty@tty1.service; systemctl mask getty@tty1.service (または disable)
してしまえばどうでしょうか
Debian Jessie では昨年9月の修正で docker 向けには起動しないようになってます。
https://packages.qa.debian.org/s/systemd/news/20160903T181714Z.html
> Don't start console-getty.service when /dev/console is missing.
> Avoids repeated unsuccessful start attempts of agetty inside (docker)
> containers. (Closes: #829537)
対象のバグ報告 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829537
こちらを見る限りは、docker コンテナ内に /dev/console が無いために発生しているようですね。
余計なお世話だと思いますが、systemd など init を利用する場合は docker より
lxc や systemd-nspawn を使うほうが幸せになれると思います。 >>971
まさか2chでこんなに丁寧なレスをもらえると思いませんでした
ありがとうございます
>docker コンテナ内で一部の権限が無い為に
agetty が無限ループをしてるようです
なるほど、そういうことか
ご指摘の通りgettyが問題だったのでこれを止めることで解決しました
色々情報を共有して下さりたいへんありがたいです BargeOSっていうのはまだ物理マシンへのインスコには対応してないのかな acbuild便利だな
でもこれ使うならdockerじゃなくてもいいな debianは公式slim版やminidebみたいなコンテナ専用カスタマイズがあるけど
他ディストリにもそういうのあるのかな ubuntu slimとgentoobbしか知らんな
gentoobbならalpineより小さく作れるよ ググったらgentoobbがkublerとかいう名前に変わってたわ 最低限環境で動くバイナリやスクリプトなら定番、alpine(or alpine-glibc)
debianリポジトリにある成果物を使いたいならinstall_packagesで自動後始末、minideb(or 公式slim)
自分でビルドオプションを指定したいならportage利用して依存性も解決、gentoo-bb(kulber?)
軽量系だと現状こんな感じか
ArchやRedHat系にもコンテナ向けビルドがあるのかな kubler知らなかったわ
17MBでnginx動かせるのは凄いな Ubuntuが良いならblitznote/debootstrap-amd64っていうのもある
サイズはminidebと同じ50MB前後でinstall_packagesのような支援コマンドは無し
姉妹品のblitznote/baseimageはapt-getすら省いて26MB
COPYやRUN curlとかで間に合うなら、alpine{,-glibc}で動かないときなんかの避難先になるかも
Debian系は公式から野良まで選択肢に恵まれてるね CentOSなら cgwalters/centosmin(74MB) を使ったことある
Fedora版 cgwalters/fedoramin(86MB) もあった
どっちもDL数少ないからあまり使われてないっぽいけどね・・・ (´・ω・`)古いfire タブ2015の使い道がない >>978-
Gentooだったら野良スリム版(と思われる) fr13nds/gentoo-amd64 が約190mbですね
公式は870mbだったから結構なシェイプアップだけれどさすがに gentoobb のビルドとはぜんぜん比べ物にならないほど大きい! >>980の`baseimage`の方ってapt-get外した結果perl(python?)依存も解消して
その合計で20mb以上減量できたのかな
でもapt完全排除はデプロイが面倒杉になってヤバそう
やっぱり軽量化の壁はパッケージ管理ツールがスクリプト言語依存なことが足かせに perlやpythonはLinux Standard Baseに含まれてたりして依存は仕方ないとも言える
だが確かに今後はコンテナで使う機能に絞った小型スタンドアロン版apt/yum等の登場も期待したいなぁ 今になってわかるね。
1バイナリに全てリンクして
配布する方法のメリット コンテナをrun restart=alwaysとかで実行しておくと
supervisordとかdaemontoolsの代わりになるのかな
システムがシンプルになっていいね PackerでDockerイメージをビルドするって
Packerでやると何かいい事あるの? >>991
それな。俺もそういったたぐいのやついらねーと思ってるよ。
シェルスクリプトで十分
普段シェルで環境作ってるのに
なんでわざわざ別のツールを使わなければいけないのか
さっぱりわからない packer push してーの terraform とか ottoとかの自動化できたはず
使わないなら無用 Ubuntuでドッカーイメージを作って、
それをCentOSへ移動させコンテナを作ることってできますか? 超好意的解釈をすると
armイメージをx86上で作れますかという質問かもしれない。 例えばUbuntuで作ったら、UbuntuやイメージビルドしたCPUなどに最適化されて、
他には持って行けないのかな?って思ってしまいました。
ありがとうございました。 >>997
ある程度カーネルが近いバージョンのもの同士でないと
コアダンプしたり落ちたりと、問題がおこることがあるよ このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1553日 0時間 27分 6秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。