Docker 通信案例

本文介绍了如何使用Flask框架启动服务器,并详细解释了run()函数的参数配置方法。此外,还提供了在Docker环境下设置Flask应用监听地址及端口的技巧,包括通过iptables进行端口转发和使用Docker命令映射容器端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:

client

server



run(*host=None*, *port=None*, *debug=None*, ***options*)

run()主要是为flask应用启动一个server
四个参数
host:主机,在使用run()启动服务的时候指定的IP地址,默认情况下是127.0.0.1
port:端口,是run()启动服务的时候指定的运行端口,默认是5000
debug:调试,如果需要进入调试模式,可以将这个选项设置成ture
options:选项参数是将server的参数传送到Werkzeug server去处理。详情参考链接内容。

run(host="172.17.0.3", port=8000, debug=True) # host 默认是行不通的,设置成docker ip地址可以
run(host="0.0.0.0", port=8000, debug=True) #设置成“0.0.0.0”也可以
查看docker容器地址
sudo docker inspect 'container name' | grep IPAddress

作者:ppmoon
链接:https://www.jianshu.com/p/3a6c3cf03186
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



调试命令

sudo netstat -anp | grep 172   (ip)

sudo netstat -anp | grep 8000   (port)

netstat -anp | grep tcp

调试软件,测试网络是否通

telnet 172.17.0.3 8000 向端口发送数据进行测试

window 调试软件 USR-TCP232-Test.exe

火狐浏览器 输入 172.17.0.3:8000 也可以进行测试。


注意:用浏览器进行测试时,要关闭掉代理设置

ubuntu 上测试时,代码测试时,消息网络是否关闭掉网络代理 系统设置-》网络-》网络代理-》代理方法 选择无


DOCKER 给运行中的容器添加映射端口
方法1

1、获得容器IP

container_name 换成实际环境中的容器名

docker inspect `container_name` | grep IPAddress
  • 1

2、 iptable转发端口

将容器的8000端口映射到docker主机的8001端口

iptables -t nat -A  DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
  • 1
  • 2
方法2

1.提交一个运行中的容器为镜像

docker commit containerid foo/live
  • 1

2.运行镜像并添加端口

docker run -d -p 8000:80  foo/live /bin/bash



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值