电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Docker初級網絡端口映射的配置

瀏覽:7日期:2024-11-05 14:22:09
端口映射

Docker容器啟動之前,如果不進行端口映射,在容器外部是無法通過網絡來訪問容器內的網絡應用和服務。因為容器中常常會運行一些網絡應用和服務,如果想在容器外部通過網絡來訪問容器內的網絡應用和服務,就需要對該容器進行端口映射,可以通過docker run命令中的-P或-p選項來進行端口映射。

隨機端口映射

當通過docker run命令中的-P選項來進行端口映射時,Docker會隨機映射一個端口到容器開放的網絡端口。

以nginx為例,先拉取nginx的鏡像。

[root@izoq008ryseuupz ~]# docker image pull nginxUsing default tag: latestlatest: Pulling from library/nginx852e50cd189d: Already exists 571d7e852307: Pull complete addb10abd9cb: Pull complete d20aa7ccdb77: Pull complete 8b03f1e11359: Pull complete Digest: sha256:6b1daa9462046581ac15be20277a7c75476283f969cb3a61c8725ec38d3b01c3Status: Downloaded newer image for nginx:latestdocker.io/library/nginx:latest[root@izoq008ryseuupz ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest bc9a0695f571 2 days ago 133MB

再以nginx鏡像創建容器nginx.1,使用-P選項來進行隨機的端口映射。

[root@izoq008ryseuupz ~]# docker run -itd -P --name nginx.1 nginx91e3c7ed957f8196fd631eb7bce21acaa96bc253551303ecba2bf193201284ba

通過docker ps -l命令,可以看到本地主機的32775端口被映射到了容器的80端口。此時訪問本地主機的32775端口即可訪問容器內nginx應用提供的界面。

[root@izoq008ryseuupz ~]# docker ps -lCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES91e3c7ed957f nginx'/docker-entrypoint.…' 17 minutes ago Up 5 seconds 0.0.0.0:32775->80/tcp nginx.1

Docker初級網絡端口映射的配置

通過docker logs nginx.1命令,可以看到剛剛用瀏覽器訪問容器中nginx應用提供的界面的記錄。

[root@izoq008ryseuupz ~]# docker logs nginx.1...111.8.49.168 - - [27/Nov/2020:09:03:53 +0000] 'GET / HTTP/1.1' 200 612 '-' 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36' '-'2020/11/27 09:03:53 [error] 21#21: *1 open() '/usr/share/nginx/html/favicon.ico' failed (2: No such file or directory), client: 111.8.49.168, server: localhost, request: 'GET /favicon.ico HTTP/1.1', host: 'ip:32775', referrer: 'http://ip:32775/'111.8.49.168 - - [27/Nov/2020:09:03:53 +0000] 'GET /favicon.ico HTTP/1.1' 404 555 'http://ip:32775/' 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36' '-'指定端口映射

通過docker run命令中的-p選項來進行指定的端口映射。將本地主機的8083端口映射到容器的80端口。

[root@izoq008ryseuupz ~]# docker run -itd -p 8083:80 --name nginx.2 nginx0e62792a194559bf33c2b39f70b64133cb89a48846278ccee651fda68aa6dad1[root@izoq008ryseuupz ~]# docker ps -lCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES0e62792a1945 nginx'/docker-entrypoint.…' 6 seconds ago Up 5 seconds 0.0.0.0:8083->80/tcp nginx.2

此時訪問本地主機的8083端口即可訪問容器內nginx應用提供的界面。

Docker初級網絡端口映射的配置

通過docker logs nginx.2命令,同樣可以看到剛剛用瀏覽器訪問容器中nginx應用提供的界面的記錄。

[root@izoq008ryseuupz ~]# docker logs nginx.2...111.8.49.168 - - [27/Nov/2020:09:28:32 +0000] 'GET / HTTP/1.1' 200 612 '-' 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36' '-'2020/11/27 09:28:32 [error] 28#28: *1 open() '/usr/share/nginx/html/favicon.ico' failed (2: No such file or directory), client: 111.8.49.168, server: localhost, request: 'GET /favicon.ico HTTP/1.1', host: 'ip:8083', referrer: 'http://ip:8083/'111.8.49.168 - - [27/Nov/2020:09:28:32 +0000] 'GET /favicon.ico HTTP/1.1' 404 555 'http://ip:8083/' 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36' '-'

通過docker ps命令,可以看到之前創建的兩個容器的端口映射都是在本地主機的0.0.0.0上。

[root@izoq008ryseuupz ~]# docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES0e62792a1945 nginx'/docker-entrypoint.…' 7 minutes ago Up 7 minutes 0.0.0.0:8083->80/tcp nginx.291e3c7ed957f nginx'/docker-entrypoint.…' 53 minutes ago Up 36 minutes 0.0.0.0:32775->80/tcp nginx.1

網上對于0.0.0.0的解釋

首先,0.0.0.0是不能被ping通的。在服務器中,0.0.0.0并不是一個真實的的IP地址,它表示本機中所有的IPV4地址。監聽0.0.0.0的端口,就是監聽本機中所有IP的端口。

C:UsersKaven>ping 0.0.0.0正在 Ping 0.0.0.0 具有 32 字節的數據:PING:傳輸失敗。常見故障。PING:傳輸失敗。常見故障。PING:傳輸失敗。常見故障。PING:傳輸失敗。常見故障。0.0.0.0 的 Ping 統計信息: 數據包: 已發送 = 4,已接收 = 0,丟失 = 4 (100% 丟失),指定地址的指定端口映射

可以通過ip:hostPort:containerPort這種格式來進行指定地址的指定端口映射,比如127.0.0.1:8083。

[root@izoq008ryseuupz ~]# docker stop nginx.2nginx.2[root@izoq008ryseuupz ~]# docker run -itd -p 127.0.0.1:8083:80 --name nginx.3 nginxa20b18b97fa4bf7576f6a0d769394a390cfb64ad5fc895453b548bf3f75105ca[root@izoq008ryseuupz ~]# docker ps -lCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMESa20b18b97fa4 nginx'/docker-entrypoint.…' 4 seconds ago Up 4 seconds 127.0.0.1:8083->80/tcp nginx.3

通過docker inspect nginx.3命令,也可以看到端口映射信息。

'Ports': {'80/tcp': [ { 'HostIp': '127.0.0.1', 'HostPort': '8083' }] }

下面這條命令啟動不了容器,因為它會默認使用0.0.0.0,報錯的原因也正是如此 - 地址已在使用中address already in use。

docker run -itd -p 8083:80 --name nginx.4 nginx

[root@izoq008ryseuupz ~]# docker run -itd -p 8083:80 --name nginx.4 nginxa5211ec678440044945e4d6f16fe59f3ac10367192262768096e7b748ebd027cdocker: Error response from daemon: driver failed programming external connectivity on endpoint nginx.4 (809bed1de2bb89f5d54b5b200503701279a153e60dac08b93e13af8c40a02e36): Error starting userland proxy: listen tcp 0.0.0.0:8083: bind: address already in use.

而下面這條命令卻可以啟動容器。

docker run -itd -p 127.0.0.2:8083:80 --name nginx.5 nginx

[root@izoq008ryseuupz ~]# docker run -itd -p 127.0.0.2:8083:80 --name nginx.5 nginxf60dcb586968471e7a8127ccef4cb4e89c4198df748da404f78afaff4afa42de

通過docker ps -a命令,可以看到所有容器的一些信息。

[root@izoq008ryseuupz ~]# docker ps -aCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMESf60dcb586968 nginx'/docker-entrypoint.…' 19 seconds ago Up 18 seconds127.0.0.2:8083->80/tcp nginx.5a5211ec67844 nginx'/docker-entrypoint.…' 2 minutes ago Created nginx.4a20b18b97fa4 nginx'/docker-entrypoint.…' 7 minutes ago Up 7 minutes127.0.0.1:8083->80/tcp nginx.30e62792a1945 nginx'/docker-entrypoint.…' 29 minutes ago Exited (0) 7 minutes ago nginx.291e3c7ed957f nginx'/docker-entrypoint.…' About an hour ago Up 58 minutes0.0.0.0:32775->80/tcp nginx.1指定地址的隨機端口映射

可以通過ip::containerPort這種格式來進行指定地址的隨機端口映射,比如127.0.0.1的隨機端口。

[root@izoq008ryseuupz ~]# docker run -itd -p 127.0.0.1::80 --name nginx.6 nginx396b7d9e64c047187c0391485ba1d275587d86409573e882bc68a9357dfcb6f2[root@izoq008ryseuupz ~]# docker ps -lCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES396b7d9e64c0 nginx'/docker-entrypoint.…' 9 seconds ago Up 9 seconds 127.0.0.1:32768->80/tcp nginx.6

可以看到Docker將127.0.0.1的32768端口映射到了容器的80端口,而這個32768端口是由Docker隨機指定的。

多個端口映射

使用多個-p選項即可進行多個端口映射。

[root@izoq008ryseuupz ~]# docker run -itd -p 9091:9091 -p 9092:8080 -p 9093:8083 --name nginx.8 nginx5ac6438dcc2a2d1b7f668eb10d8285085c396a44f896aae0b3dc09935e4e95eb[root@izoq008ryseuupz ~]# docker ps -lCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES5ac6438dcc2a nginx'/docker-entrypoint.…' 6 seconds ago Up 4 seconds 80/tcp, 0.0.0.0:9091->9091/tcp, 0.0.0.0:9092->8080/tcp, 0.0.0.0:9093->8083/tcp nginx.8查看端口映射配置

docker port命令可以查看容器的端口映射配置。

[root@izoq008ryseuupz ~]# docker port nginx.6 80127.0.0.1:32768[root@izoq008ryseuupz ~]# docker port nginx.5 80127.0.0.2:8083[root@izoq008ryseuupz ~]# docker port nginx.380/tcp -> 127.0.0.1:8083[root@izoq008ryseuupz ~]# docker port nginx.88080/tcp -> 0.0.0.0:90928083/tcp -> 0.0.0.0:90939091/tcp -> 0.0.0.0:9091

Docker容器的端口映射就介紹到這里。

到此這篇關于Docker初級網絡端口映射的配置的文章就介紹到這了,更多相關Docker 端口映射內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Docker
相關文章:
主站蜘蛛池模板: 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 螺杆泵_中成泵业 | 山东信蓝建设有限公司官网| 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 | 营养师网,营养师考试时间,报名入口—网站首页 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 微型实验室真空泵-无油干式真空泵-微型涡旋耐腐蚀压缩机-思科涡旋科技(杭州)有限公司 | 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 广州/东莞小字符喷码机-热转印打码机-喷码机厂家-广州瑞润科技 | 劳动法网-专业的劳动法和劳动争议仲裁服务网 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 上海logo设计| 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 |