sql >> データベース >  >> NoSQL >> Redis

Docker [Errno 111]接続呼び出しが失敗しました( '127.0.0.1'、6379)

    127.0.0.1:6379を変更してみてください redis:6379へ 。

    Redisは実行されていますが、python コンテナはそれと通信できません。これは、127.0.0.1:6379に接続しようとしているためです。 、しかし、コンテナの観点からは、そこには何も実行されていません。これはデバッグするのに少しイライラするかもしれませんが、コンテナが独自のネットワーク名前空間を取得することを覚えておくと少し簡単になります。その結果、python のローカルホスト!=redis 's localhost!=ホストマシンのlocalhost

    幸い、同じブリッジを共有しているコンテナを接続するのは簡単です。デフォルトでは、docker-compose 単一のブリッジネットワークを作成し、すべてのコンテナをそれらに接続して、コンテナが相互に検出できるようにするために必要なDNSを提供します。その結果、コンテナ間の通信は、サービス名を使用するだけで機能します。

    注として、--net=container:<container-id>を使用して、同じ名前空間でコンテナーを実行し、ホストの名前空間でコンテナーを実行することができます。 または--net=host 国旗。これは、コンテナでデバッグツールを実行し、それらを別のコンテナまたはホストのネットワーク名前空間にアタッチする場合に特に便利です。 netshootを使用して、コンテナー内でリッスンしているポート(公開されているかどうか)を確認します。docker run --rm -it --net container:test_web_1 nicolaka/netshoot netstat -tulpn



    1. ScaleGridフルマネージドホスティングforRedis™がAzureで利用可能になりました

    2. Redis接続を閉じたり開いたままにしたりする必要があるのはなぜですか?

    3. Ansibleを使用したMongoDBのデプロイとメンテナンス

    4. Flaskで応答を返さずにビュー関数を作成する