検索

ホームページ  >  に質問  >  本文

使用Docker部署java web应用

假设我们我需要的组件有:nginx tomcat webapp redis

我们的操作系统是debain

nginx是一个容器
tomcat webapp是一个容器
redis一个容器
....
然后把这些容器整合,完成部署

疑惑的是端口之间如何访问?数据库文件在哪?各容器之间文件是否可以共享?

没有使用过Docker 不知道思想是否正确,求各位大侠解惑

阿神阿神2770日前577

全員に返信(4)返信します

  • ringa_lee

    ringa_lee2017-04-24 09:14:08

    1. docker を仮想マシンとして使用できるため、少なくとも使用に学習コストはかかりません。これは、仮想マシンのいくつかの操作手順を Dockerfile に書き込むことで、Docker が自動的に構成できるようになり、より明確になります。ただし、一部の操作と構成手順は通常のインストールでは実装が難しい場合があります。Docker Hub での他の人の記述方法から学ぶ必要があります。
    この方法では、ポート間のアクセスとファイル共有は問題なく、データベース ファイルをコンテナに配置したり、VOLUME を介してローカル ファイル システムからコンテナにマウントしたりできます。
    2. Docker を使用してマイクロサービスを構築します。これは、マイクロサービスを異なるコンテナーに分割して、大規模なサービスの内部サービスを形成することを意味します。この場合、コンテナを指定する実行時に --link パラメータを指定することでポート間のアクセスを指定できます。また、コンテナ ファイルを -v (--volume) と指定することで、データベース ファイルをローカル ディレクトリからコンテナにマウントできます。共有は、フォルダーを VOLUME として指定することで実行できます。基本的には、ローカル ファイル システムのディレクトリを複数のコンテナーにマウントするだけです。
    3. 本当にマイクロサービスを使用したい場合は、さまざまなコンポーネントの管理に役立つ docker-compose テクノロジーを理解する必要があります。必要なのは、yml ファイルにコンテナーの実行構成を記述することだけです。

    返事
    0
  • 迷茫

    迷茫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 に直接転送してください

    返事
    0
  • 阿神

    阿神2017-04-24 09:14:08

    docker-compose、docker サービス オーケストレーション。

    返事
    0
  • 怪我咯

    怪我咯2017-04-24 09:14:08

    使用するすべてのコンポーネントがアプリケーションにサービスを提供する場合は、公式に提供されている Compose などの Docker オーケストレーション ツールを使用することをお勧めします。
    コンテナ間でファイルとデータを共有できます。これはデータ ボリュームをマウントすることで実現できます。
    コンテナ間を接続する最も便利な方法は、リンク パラメータを介して接続することです。これにより、2 つのコンテナ間に専用のチャネルが確立され、データの公開が回避されます。外部へのデータポートの開放によって引き起こされるセキュリティリスク。
    それをやりたい場合は、最初に最も基本的なことに慣れておくことをお勧めします。これは非常に興味深いものです。

    返事
    0
  • キャンセル返事