国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

Docker容器綁定外部IP和端口的方法

2024-09-01 13:56:10
字體:
來源:轉載
供稿:網友

Docker允許通過外部訪問容器或者容器之間互聯的方式來提供網絡服務。

以下操作通過myfirstapp鏡像模擬。

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/<h3>Hello HELLO!</h3><b>Hostname:</b> dbcf5d3290ba<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>

Docker,容器,綁定,外部IP,端口

也可以使用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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 胶南市| 怀安县| 沂水县| 普定县| 深圳市| 富蕴县| 纳雍县| 桐梓县| 永寿县| 延庆县| 黄梅县| 遂溪县| 北海市| 桂阳县| 吴旗县| 和平县| 马边| 蚌埠市| 北宁市| 昌黎县| 水城县| 革吉县| 木兰县| 基隆市| 宝丰县| 龙川县| 濮阳市| 垣曲县| 江山市| 福鼎市| 常山县| 伽师县| 海晏县| 敖汉旗| 三原县| 沁水县| 涿州市| 萍乡市| 绥化市| 永定县| 侯马市|