問題タブ [boot2docker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
virtual-machine - Vagrant および/または Docker ワークフローに OS X ファイルシステムを完全に統合して、シームレスなローカル感覚を実現しますか?
最近、私は と に手を出していvagrant
ますdocker
。これらは非常に興味深いツールですが、私の OS X マシンでは、これが正しい方法であるとはまだ確信できていません。古い Unix の帽子である私は、開発目的のために統合されたサンドボックス化された環境が好きだと言わざるを得ません。
私はたくさんのおしゃべりを見てきましたし、多くの友人が編集用のvagrant
ストックだけを使っています。vim
私はそのアプローチのファンではなく、おそらく vm プロバイダーの共有メカニズムまたは NFS を使用することを好むでしょう。
個人的には、TextMate、SublimeText、Emacs (OS X 上) で直接編集したり、RubyMine とそのさまざまな IDE 機能などを使用したりしたいと考えています.
ワークフローを実際にダウンさせて、そのような環境が本質的にローカル環境で作業するのと同じようになるようにする方法はありますか?
適切に配置されたいくつかのスクリプトは長い道のりを歩むことができると思いますが、これを本当にシームレスな環境にするための確かな答えは見つかりませんでした.
docker - 分散システムにおける Docker データ ボリュームとスケーリング
Docker データ ボリュームは、ローカル VM (boot2docker) 上のホストまたは boot2docker 内に存在します。
mongoDB からのビッグ データをデータ コンテナーで実行し、mongoDB を別のコンテナーで実行することが、その方法のようです。これは、Google Cloud Engine や Azure Virtual Machines などでスケーリングされますか。つまり、これらすべてが、boot2docker などのクラウド内の 1 つの仮想マシン内で実行されている場合です。通常、VM の新しいインスタンスを作成することで VM をスケーリングしますが、Docker ではどのようにこれが可能でしょうか?
StackExchange で質問して申し訳ありませんが、dba にはカテゴリがありませんが、StackExchange には Docker のカテゴリがあります。
ありがとう
よろしくクリスチャン
virtualization - データのみの Docker コンテナをあるマシンから別のマシンに移動する正しい方法
別のデータのみのコンテナーにデータを書き込んでいるデータベース Docker コンテナーがあります。データ専用コンテナーには、データベースのデータを格納するボリュームがあります。このデータのみのコンテナーをあるマシンから別のマシンに移行する「ドッカー」の方法はありますか? docker save と docker load について読みましたが、これらのコマンドはコンテナではなくイメージを保存およびロードします。Docker コンテナーをそのボリュームと共にパッケージ化し、別のマシンに移動できるようにしたいと考えています。
docker - boot2docker ホスト バインド マウント ボリューム サイズは 1.8 GB に制限されます
MacOS X で Docker を実行するために、boot2docker でボリューム コンテナーを使用しています。
Docker のドキュメントに記載されているバックアップ/復元プロセスを実行しようとしています。
2 GB を超える MySQL データベースをバックアップしようとしています。バックアップ コマンドを実行すると、次のようになります。
...このエラーで失敗した場合:
tar
ディスク容量が不足しているようです。そこで、コンテナに入り、ホスト バインド マウントを調べたところ、そのサイズは 1.8 GBでした。
/demo
わずか 1.8Gであることがわかります...
このサイズを拡張する方法がわからないので、大きなバックアップを作成できます...
何か案が?ありがとう!
vagrant - 開発用 Docker - ウォッチ/自動ビルド?
Vagrant から Docker、または Vagrant+Docker に移行しようとしています。最善の解決策を見つけようとしています...とにかく、これが私の開発ワークフローです。
- 1) vm 環境を構築する
- 2) 同期フォルダを共有する
- 3) 開発する
- 4) ブラウザで直接テストする
コードは vm 内で自動的に更新されるため、変更を加えたときにアプリを確認できます。
build
Docker では、変更が行われるたびにコマンドを実行する必要があるため、少し異なるようです。
build
変更が検出されるとすぐに実行できる方法はありますか?
開発に Docker を使用するための推奨事項はありますか?
database - ディスクからデータ ボリュームをマウントするよりも、データベース コンテナーからデータ コンテナーを分離する方がよい理由
そのため、Docker コミュニティの間では、データ コンテナーを、このデータを使用しているデータベース コンテナーから分離することは非常に一般的です。私が聞いた最も大きな理由は、データベースを更新する必要がある場合でも、新しいデータベース コンテナーから同じデータにアクセスできるということです。ディスクからデータベース コンテナーにボリュームをマウントするだけでなく、コンテナーを更新する場合は、同じボリュームを新しいデータベース コンテナーにマウントするよりも優れている理由を理解するのに苦労しています。これらのプロセスは基本的に同じものです。見えないユースケースはありますか?
http://www.offermann.us/2013/12/tiny-docker-pieces-loosely-joined.html
このリンクは利点を説明しようとしますが、ボリュームをマウントしても同じことが起こる可能性があります。
docker - boot2docker で実行されている docker コンテナーで /dev/random をサポートするのに十分なエントロピーがありません
仮想化された Linux システムでエントロピーが不足することは、一般的な問題のようです (例: /dev/random Extremely Slow?、Linux を /dev/random にバッファーさせる)。ハードウェア乱数ジェネレーター (HRNG) を使用しているにもかかわらず、HAVEGED のようなエントロピー収集デーモンの使用がしばしば提案されます。ただし、エントロピー収集デーモン (EGD) は Docker コンテナー内で実行することはできず、ホストによって提供される必要があります。
EGD を使用すると、Ubuntu、RHEL などの Linux ディストリビューションに基づく Docker ホストで問題なく動作します。そのようなデーモンを boot2docker (Tiny Core Linux (TCL) に基づく) 内で動作させることは、別の話のようです。TCL には拡張メカニズムがありますが、エントロピー収集デーモンの拡張機能は利用できないようです。
したがって、EGD は (本番) ホスティング環境で docker コンテナーを実行するための適切なソリューションのように思えますが、boot2docker での開発/テストのためにそれを解決するにはどうすればよいでしょうか?
boot2docker で EGD を実行するのは難しすぎるように思えたので、単純に /dev/random の代わりに /dev/urandom を使用することを考えました。/dev/urandom を使用すると安全性が少し低下しますが、長期的な暗号化キーを生成しないほとんどのアプリケーションでは問題ありません。少なくとも、boot2docker 内での開発/テストには問題ないはずです。
playframework - docker コンテナーでの Play フレームワークの自動読み込み
docker コンテナーで play アプリケーションを開発するための開発環境をセットアップしようとしています。sbt をインストールしたイメージを作成しました。次に、ホストのプロジェクト フォルダーをボリュームとしてコンテナーにマップし、対話モードでシェルを実行します。
次に、 を実行して play アプリケーションを起動しますsbt ~run
。再生サーバーは検索するだけで起動し、ホスト上のファイルを編集すると再コンパイルされます。
問題は、更新時に変更がブラウザーに表示されないことです。キャッシュを無効にしたため、キャッシュの問題はありません。ホストからアプリケーションを実行すると、すべて正常に動作します。
編集: これは、sbt でコンテナーを作成するために使用する Dockerfile です。
さらに調査を行いました。docker コンテナー内で、次のように play アプリケーションを開始します。
ブラウザでのページの読み込みは正常に機能します。次に、ホスト上のインデックス ファイルを変更します。これにより、コンテナー内で再コンパイルがトリガーされます。
ブラウザを更新しても、最初のインデックス ファイルが表示されます。変更がコンテナー内の再生アプリケーションによって取得された場合でも。また、コンパイルされたファイルを調べましたtarget/scala-2.10/classes/views/html
(コンテナーで play アプリケーションを実行していて、複数のターミナルを接続する方法がわからないため、ホスト上で)。コンパイルされたファイルが変更されました。
次に行ったのは、Ctrl-D を押すことでした。これにより、上記の「(Server started, use Ctrl+D to stop and go back to the console...)」という出力メッセージに従って、sbt コンソールに戻るはずです。ただし、これにより次の出力が得られます。
以前に行った変更は、更新後にブラウザーに反映されます。
download - Docker はダウンロードしたファイルを削除します
Magento 拡張機能をテストするために Docker コンテナーをセットアップしようとしています。次のような Dockerfile でそれを行うことを期待しています。
しかし、それは失敗します:
私は、OS X で boot2docker を使用していることに関係があると考えています (しばらく前に、OS X には Docker とのファイルシステム共有の問題があることを思い出しました)。
上記を実行すると、curl は正常に実行され、エラーなしで終了しますが、結果のコンテナーにはダウンロードされたファイルが含まれていないため、ダウンストリームの tar コマンドは失敗します。
中間コンテナを調べると、ファイルは実際にはありません。
ファイルシステムをダウンロードして変更できるようにする Dockerfile をどのようにセットアップすればよいのでしょうか?