python-如何使用docker-py绑定端口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-如何使用docker-py绑定端口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2780字,纯文字阅读大概需要4分钟。
内容图文
![python-如何使用docker-py绑定端口](/upload/InfoBanner/zyjiaocheng/693/1df8ae752aea4c16b38a473396c78c2d.jpg)
我尝试使用docker-py(版本1.3.1)启动Docker容器.我想将容器内部端口映射到其他端口,但无法正确公开它们.
我这样做是这样的:
def start_container(client, host_config, image_tagged_name, command):
print ("create_host_config", host_config.binds, host_config.port_bindings)
the_host_config = create_host_config(binds = host_config.binds,
port_bindings = host_config.port_bindings);
the_ports = host_config.port_bindings.values();
print ("create_container", image_tagged_name, command, the_ports, the_host_config)
cont_id = client.create_container(image=image_tagged_name, command=command, ports=the_ports, host_config=the_host_config)["Id"]
在当前情况下,输出如下:
create_host_config ['/dbfiles/test:/opt/db'] {3001: 3000, 2425: 2424, 2481: 2480}
create_container test:test ./initdb.sh [3000, 2424, 2480] {'Binds': ['/dbfiles/test:/opt/db'], 'PortBindings': {'3001/tcp': [{'HostPort': '3000', 'HostIp': ''}], '2425/tcp': [{'HostPort': '2424', 'HostIp': ''}], '2481/tcp': [{'HostPort': '2480', 'HostIp': ''}]}}
docker ps告诉我:
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
169ad3ae0f63 test:test "./initdb.sh" 5 minutes ago Up 5 minutes 2424/tcp, 2480/tcp, 3000/tcp silly_pasteur
但是,如果我给它映射3000-> 3000、2424-> 2424和2480->它给了2480
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cba483673bdd test:test "./initdb.sh" 53 minutes ago Up 5 minutes 0.0.0.0:2424->2424/tcp, 0.0.0.0:2480->2480/tcp, 0.0.0.0:3000->3000/tcp stupefied_ptolemy
关键是从命令行我可以使用正确的端口映射启动容器.那是
docker运行-d -p 3001:3000 -p 2425:2424 -p 2481:2480 -v / dbfiles / test:/ opt / db localhost:5000 / test:test /initdb.sh
给出期望的结果.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c1580e0ace9 localhost:5000/test:test "/initdb.sh" 8 seconds ago Up 6 seconds 0.0.0.0:2425->2424/tcp, 0.0.0.0:2481->2480/tcp, 0.0.0.0:3001->3000/tcp backstabbing_brahmagupta
但是,使用docker-py,我无法弄清楚如何将端口映射到不同的端口号.我想念什么?
解决方法:
使用docker-py时必须发布和公开端口. (当您使用docker run发布时,端口被隐式公开)
例:
container = config['connection'].create_container(
image=imageName,
name=containerName,
ports=[2424],
host_config=create_host_config(port_bindings={2424:2425})
)
内容总结
以上是互联网集市为您收集整理的python-如何使用docker-py绑定端口全部内容,希望文章能够帮你解决python-如何使用docker-py绑定端口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。