24

私は Linux コンテナーの完全な初心者であり、 Dockerについて学ぶのに時間を費やしてきました。この質問についての混乱を許してください。現在、カピストラーノを介してデプロイされた本番環境のRailsアプリがあります。私のクラウド サーバーは、Debian Wheezy ディストリビューションの Opscode Chef で維持されています。開発のために、アプリとサービスがプリインストールされた Vagrant VM があります。

Docker を採用するとしたら、アプリはどこに配置されますか? コンテナかホストか? どのようにデプロイ (本番) し、ディレクトリを共有 (開発) しますか? docker を使用して、memcache、redis、postgresql などのすべての追加サービスを同じサーバーで実行できますか? Docker の可能性は想像できるかもしれませんが、実際の使用方法を理解するのに苦労しています。

コンテナは未来の一部のようです。仮想化から切り替える人へのガイダンスはありますか?

4

2 に答える 2

12

Docker を採用するとしたら、アプリはどこに配置されますか?

コンテナー内に配置することも、ホスト上に配置することもできます (docker build を使用してアプリをコンテナーにコピーできます)。

どのようにデプロイ (本番) し、ディレクトリを共有 (開発) しますか?

アプリをデプロイするということは、ローカル コンテナーをイメージにコミットし、それを公開して、サーバー上で公開されたイメージからコンテナーを実行することを意味します。ホストとコンテナーの間でディレクトリを共有することは試していませんが、これを試すことができます: https://gist.github.com/jpetazzo/5668338。ディレクトリをコンテナー内のターゲットにコピーできる Dockerfile を作成することもできます。そこでは、イメージのビルドに関するDocker のドキュメントが役立ちます。

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

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

于 2013-08-22T12:06:18.120 に答える
2

私は専門家ではなく、docker を自分で使用したこともありませんが、私が理解しているように、アプリは docker コンテナー内に配置されています。理想的には、独自の Ruby バージョンがインストールされたコンテナー全体をデプロイします。

大きな利点は、本番環境に出荷する予定のステージング システムとまったく同じコンテナーをテストできることです。lsしたがって、インストールされているすべての C 拡張機能、まったく同じコマンドなどを使用して、完全なシステムをテストできます。

于 2013-08-19T14:48:51.803 に答える