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授课课件
深职院软件开发中外合作专业
安全与智能化的数据库
网络安全保障方案
卫宁互联网科技怎么样
如何删除数据库两个表的关联
数据库查询时如何不输入模式名
互联网及其网络安全
数据库关系表依赖函数集
长沙物流软件开发公司哪家强