gpt4 book ai didi

python - 如何在 docker-py 中运行基本的 Web 应用程序容器?

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:15 25 4
gpt4 key购买 nike

我正在尝试模拟运行在某个端口公开的容器化 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)})

但我无法在公共(public)端口 1338(使用第一个命令正常工作)访问容器 - 我收到连接被拒绝的错误。有谁知道我是否遗漏了一些让 Python 调用创建功能性、可访问容器的选项?

检查容器告诉我端口设置正确:

$ sudo docker port hello 1337
0.0.0.0:1338

我还在 create_container 调用中尝试了 ports=[1337] 选项,但它也没有帮助。

更新: 似乎是 some kind of 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> 访问服务

关于python - 如何在 docker-py 中运行基本的 Web 应用程序容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21112651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com