千家信息网

Docker容器如何绑定外部IP和端口

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,小编给大家分享一下Docker容器如何绑定外部IP和端口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Docker允许通过
千家信息网最后更新 2025年01月22日Docker容器如何绑定外部IP和端口

小编给大家分享一下Docker容器如何绑定外部IP和端口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。

1、外部访问容器

容器启动之后,容器中可以运行一些网络应用,通过-p或-P参数来指定端口映射。

a、用-P(大写)标记时,docker会随机选择一个端口映射到容器内部开放的网络端口上。

$ docker run -d -P myfirstapp python app.py $ docker psCONTAINER ID IMAGE    COMMAND CREATED   STATUS              PORTS       NAMESdbcf5d3290ba myfirstapp "python app.py"   4 seconds ago Up 4 seconds 0.0.0.0:32770->80/tcp  quizzical_engelbart

此时访问本机的32770端口就可以访问到容器内web应用提供的界面。

$ curl http://192.168.1.160:32770/

Hello HELLO!

Hostname: dbcf5d3290ba
Visits: cannot connect to Redis, counter disabled

也可以使用docker logs来查看应用的信息

$ docker logs dbcf5d3290ba* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)192.168.1.5 - - [29/Mar/2018 06:17:34] "GET / HTTP/1.1" 200 -192.168.1.5 - - [29/Mar/2018 06:17:34] "GET /favicon.ico HTTP/1.1" 404 -192.168.1.160 - - [29/Mar/2018 06:17:43] "GET / HTTP/1.1" 200 -192.168.1.5 - - [29/Mar/2018 06:18:59] "GET / HTTP/1.1" 200 -

b、使用-p(小写)标记时则可以指定要映射的端口,并且在一个指定端口上只可以绑定一个容器,支持的格式有:

ip:hostport:containerport ip::containerport hostport:containerport$ docker run -d -p 4000:80 myfirstapp python app.py$ docker run -d -p 4001:80 myfirstapp python app.py$ curl http://192.168.1.160:4000/Hello HELLO!Hostname: f43ed2810353Visits:cannot connect to Redis, counter disabled$ curl http://192.168.1.160:4001/Hello HELLO! Hostname:f43ed2810353Visits:cannot connect to Redis, counter disabled

可以看到本地4000端口已经被映射,换一个端口4001也被映射。

docker默认会映射本地所有的地址。现在我们来尝试一下映射到指定地址的指定端口

$ docker run -d -p 127.0.0.1:4000:80 myfirstapp python app.py$ curl http://127.0.0.1:4000/ ##访问通过$ curl http://localhost:4000/ ##访问通过$ curl http://192.168.1.160:4000/ ##访问拒绝curl: (7) Failed connect to 192.168.1.160:4000; 拒绝连接

然后要访问容器中的应用只能通过127.0.0.1这个ip访问。

接下来是绑定本机的任意端口到容器的80端口,随机分配一个端口

$ docker run -d -p 127.0.0.1::80 myfirstapp python app.py$ docker ps ##127.0.0.1:32770->80/tcp$ curl http://127.0.0.1:32770/ ##访问通过$ curl http://localhost:32770/ ##访问通过$ curl http://192.168.1.160:32770/ ##访问拒绝

还可以指定通信协议

docker run -d -p 5003:80/udp myfirstapp python app.py

2.查看容器绑定和映射的端口及Ip地址

$ docker port 44de1b0b5312(容器ID)80/tcp -> 127.0.0.1:32770

3.注意事项

a.docker inspect查看容器自己的内部网络和ip地址

$ docker inspect 44de1b0b5312(容器ID)

b.容器启动绑定多IP

$ docker run -d -p 5005:5000 -p 5006:80 myfirstapp python app.py #容器ID:44e703c1279a$ docker port 44e703c1279a5000/tcp -> 0.0.0.0:500580/tcp -> 0.0.0.0:5006

以上是"Docker容器如何绑定外部IP和端口"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

容器 端口 地址 网络 应用 篇文章 内容 标记 本机 接下来 不怎么 之间 事项 信息 参数 大写 大部分 小写 方式 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 维护网络安全的管理方式 深圳酒店软件开发费用是多少 清远做app的软件开发多少钱 导出远程数据库 软件开发与it的区别 手机如何绑定wed服务器 网上购物系统数据库运行与维护 php 异步写数据库 营销软件开发优势 数据库代表性人物 数据库运维目标是保证数据库系统 杭州文武网络技术有限公司 sql数据库怎么设置路径 滴滴顺风车软件开发费用 delete数据库中是什么意思 淮安游合网络技术公司 帆软报表服务器管理平台 迅达服务器插上去看不清 网络安全在我心小学五年级作文 软件开发生命周期有几个时期 网络安全周2020授课课件 深职院软件开发中外合作专业 安全与智能化的数据库 网络安全保障方案 卫宁互联网科技怎么样 如何删除数据库两个表的关联 数据库查询时如何不输入模式名 互联网及其网络安全 数据库关系表依赖函数集 长沙物流软件开发公司哪家强
0