2013-08-06 8 views
23

私はLinuxコンテナのnoobです。Dockerについて学習しています。私の混乱を許してください。現在、私はcapistrano経由で実運用されているRailsアプリを持っています。私のクラウドサーバは、Debian WheezyディストリビューションのOpscode Chefで管理されています。開発には、アプリとサービスがあらかじめインストールされたVagrant VMがあります。DockerコンテナへのRailsの実行と配備

私がDockerを採用する場合、私のアプリはどこに座りますか?コンテナかホストか?どのように私は(プロダクション)を展開し、ディレクトリを共有しますか(開発)?ドッカーを使用して同じサーバーにmemcache、redis、postgresqlなどのすべての追加サービスを実行できますか?私はDockerの可能性を想像することはできますが、実際の使用には問題があります。

容器のようなものは将来の一部です。誰かが仮想化からスイッチに移行するためのガイダンスはありますか?

答えて

11

Dockerを採用する場合、私のアプリはどこに座りますか?

(どのように私は(生産)を展開し、ディレクトリを共有する

(あなたはコンテナにアプリをコピーするドッキングウィンドウのビルドを使用することができます)これは、容器の内部に座ることができ、またはそれは、ホスト上に座ることができ開発)?あなたのアプリが それを公開し、あなたのサーバー上で公開した画像のうち、コンテナを実行し、画像の中にあなたの地元のコンテナを犯し意味するであろう展開

。私はホストとコンテナの間でディレクトリを共有しようとしませんでしたが、これを試すことができます:https://gist.github.com/jpetazzo/5668338。また、ディレクトリをコンテナ内のターゲットにコピーできるDockerfileを記述することもできます。 Dockerのdocs on building imagesがお手伝いします。

ドッカーを使用して同じサーバーにmemcache、redis、postgresqlなどのすべての追加サービスを実行できますか?

はい。同じサーバー上で複数のコンテナを実行します。

+1

応援、@エミール。素晴らしい応答。 –

+0

これらの追加のサービスは、それぞれ独自のドッカーコンテナ内にあることはできますか? – CMCDragonkai

+0

@CMCDragonkai提案されている方法は、すべてのサービスを独自のコンテナで実行することです。つまり、モジュール式です。memcachedイメージを使用して複数のアプリケーションのコンテナを実行し、Webアプリケーションコンテナの3つのインスタンスを実行してhaproxyコンテナ!)。コンテナの相互参照を支援するための[リンク文書](http://docs.docker.io/en/latest/use/working_with_links_names/)を参照してください。それらを実行するには、[Fig](http://orchardup.github.io/fig/index.html)も好きかもしれません。複数のインスタンスの 'fig scale'コマンドに注意してください。 – ches

2

私は専門家ではなく、ドッカーを自分で使ったこともありませんでしたが、私が理解しているように、あなたのアプリはドッカーのコンテナの中に座っています。独自のルビーバージョンがインストールされているコンテナ全体を理想的に展開します。

大きな利点は、ステージングシステムで同じ容器を正確にテストして生産に出荷することができることです。したがって、インストールされているすべてのC拡張モジュール、完全に同じlsコマンドなどを使用して、完全なシステムをテストすることができます。

+0

これはCapistranoを置き換えることを意味しますか? – ardochhigh

+0

である必要はありません。 capistranoを使用してドッカーコンテナに展開することができます。 capistranoはあなたのコードをどこかに置きます。ドッカーがあなたのマシンをどこかに置きます。 – udo

+0

あなたの答えをありがとう。私はもう少し読んで、Dockerは実際に優れています。しかし、それはまだ準備ができていないので、私はそれを見守ります。 – ardochhigh

関連する問題