ポートで公開されたコンテナー化された Web アプリの実行を模倣しようとしています
sudo docker run -d -p 1338:1337 kermit/hellonode
Python でdocker-pyを使用します。これまでのところ、インスタンスを開始するための次のコードを取得しました。
container = c.create_container('kermit/hellonode', name='hello')
c.start(container, port_bindings={1337: ('0.0.0.0', 1338)})
しかし、パブリック ポート 1338 (最初のコマンドで正常に動作します) でコンテナーにアクセスできません。接続拒否エラーが発生します。Python呼び出しで機能的でアクセス可能なコンテナを作成するためのオプションが不足しているかどうかは誰にもわかりませんか?
コンテナーを調べると、ポートが適切に設定されていることがわかります。
$ sudo docker port hello 1337
0.0.0.0:1338
ports=[1337]
通話のオプションも試しましたcreate_container
が、どちらも役に立ちませんでした。
更新:これはある種のバグのようです。回避策は、TCP を明示的に指定することです。
container = c.create_container('kermit/hellonode', name='hello', ports=[(1337, 'tcp')])