簡體   English   中英

如何在docker-py中運行基本的web應用程序容器?

[英]How to run basic web app container in docker-py?

我試圖模仿運行在某個端口暴露的容器化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

我還在create_container調用中嘗試了ports=[1337]選項,但它也沒有幫助。

更新:似乎這是某種bug 解決方法是明確指定TCP:

container = c.create_container('kermit/hellonode', name='hello', ports=[(1337, 'tcp')])

我可以確認這不起作用。

這種方法可行,它可能對您有用:

container = c.create_container('kermit/hellonode', name='hello', ports=[1337])
c.start(container, publish_all_ports=True)
info = c.inspect_container(container)
host_port = info['NetworkSettings']['Ports']['1337'][0]['HostPort']

然后,您可以訪問0.0.0.0:<host_port>服務0.0.0.0:<host_port>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM