1
2つのコンテナでDockerを使用しています。両者は異なるコンテナで実行する場合、私は、彼らがお互いを知ることができますどのようにすなわち2つのDockerコンテナ間の通信
r = requests.get('http://localhost:5000')
:秒1は、簡単なクライアントである
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Flask Dockerized'
if __name__ == '__main__':
app.run(debug=True,host='0.0.0.0')
:これらの一つはPythonで書かれたシンプルなサーバです?
いくつかの方法があります。私が通常使っている方法(これは時代遅れだと思います)は、サーバコンテナのポートを 'EXPOSE'して' --link'を使ってクライアントコンテナにリンクさせることです。これはクライアントの '/ etc/hosts'ファイルにエントリを追加します。クライアントアプリケーション内のサーバを参照することができます(' requests.get( 'flask:5000') 'ポート5000を露出させる「フラスコ」)。 – Tagc
これに代わるより優れた方法は、サーバーイメージとクライアントイメージの両方を定義するためにDockerを使用することです。これにより、両方のアプリケーションをそれぞれ独立したネットワークで開始することができ、コンテナ名と同じホスト名を使用してクライアントアプリケーションからサーバーが自動的に検出されます。 https://docs.docker.com/compose/networking/ – Tagc
'--name 'で2番目のコンテナの名前をつけてください。 '--link 'で最初のコンテナを実行してください。最初のコンテナから 'r = requests.get( '')'を使って簡単にリクエストできます。 –