假设我们我需要的组件有:nginx tomcat webapp redis
我们的操作系统是debain
nginx是一个容器
tomcat webapp是一个容器
redis一个容器
....
然后把这些容器整合,完成部署
疑惑的是端口之间如何访问?数据库文件在哪?各容器之间文件是否可以共享?
没有使用过Docker 不知道思想是否正确,求各位大侠解惑
ringa_lee2017-04-24 09:14:08
1. docker を仮想マシンとして使用できるため、少なくとも使用に学習コストはかかりません。これは、仮想マシンのいくつかの操作手順を Dockerfile に書き込むことで、Docker が自動的に構成できるようになり、より明確になります。ただし、一部の操作と構成手順は通常のインストールでは実装が難しい場合があります。Docker Hub での他の人の記述方法から学ぶ必要があります。
この方法では、ポート間のアクセスとファイル共有は問題なく、データベース ファイルをコンテナに配置したり、VOLUME を介してローカル ファイル システムからコンテナにマウントしたりできます。
2. Docker を使用してマイクロサービスを構築します。これは、マイクロサービスを異なるコンテナーに分割して、大規模なサービスの内部サービスを形成することを意味します。この場合、コンテナを指定する実行時に --link パラメータを指定することでポート間のアクセスを指定できます。また、コンテナ ファイルを -v (--volume) と指定することで、データベース ファイルをローカル ディレクトリからコンテナにマウントできます。共有は、フォルダーを VOLUME として指定することで実行できます。基本的には、ローカル ファイル システムのディレクトリを複数のコンテナーにマウントするだけです。
3. 本当にマイクロサービスを使用したい場合は、さまざまなコンポーネントの管理に役立つ docker-compose テクノロジーを理解する必要があります。必要なのは、yml ファイルにコンテナーの実行構成を記述することだけです。
迷茫2017-04-24 09:14:08
私のものはmysql tomcat fastdfsです
mysqlは-pを使用して3306ポートをマップします
tomcat 8080 fastdfsは8081に変更されました
ホストIPは10.0.15.4です
したがって、tomcatプロジェクトの設定は10.0.15.4 / 3306 /に接続することです8081
それで終わりです。その後、iptables は dokcer コンテナー ネットワーク セグメントを開いてホストにアクセスします
nginx をお持ちの場合は、nginx の Tomcat の 8080 に直接転送してください
怪我咯2017-04-24 09:14:08
使用するすべてのコンポーネントがアプリケーションにサービスを提供する場合は、公式に提供されている Compose などの Docker オーケストレーション ツールを使用することをお勧めします。
コンテナ間でファイルとデータを共有できます。これはデータ ボリュームをマウントすることで実現できます。
コンテナ間を接続する最も便利な方法は、リンク パラメータを介して接続することです。これにより、2 つのコンテナ間に専用のチャネルが確立され、データの公開が回避されます。外部へのデータポートの開放によって引き起こされるセキュリティリスク。
それをやりたい場合は、最初に最も基本的なことに慣れておくことをお勧めします。これは非常に興味深いものです。