Docker端口映射實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)的方法
Docker運(yùn)行容器之后卻發(fā)現(xiàn)沒(méi)IP,沒(méi)端口,那要如何訪問(wèn)容器呢?
下面我來(lái)介紹下docker通過(guò)端口映射來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)
一、從外部訪問(wèn)容器應(yīng)用
在啟動(dòng)容器的時(shí)候,如果不指定對(duì)應(yīng)參數(shù),在容器外部是無(wú)法通過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)容器內(nèi)的網(wǎng)絡(luò)應(yīng)用和服務(wù)的。
當(dāng)容器中運(yùn)行一些網(wǎng)絡(luò)應(yīng)用,要讓外部訪問(wèn)這些應(yīng)用時(shí),可以通過(guò)-P或-p參數(shù)指定端口映射。
先來(lái)說(shuō)說(shuō)p和P吧
- -p 可以指定要映射的端口,并且,在一個(gè)指定端口上只可以綁定一個(gè)容器
- -P 它會(huì)隨機(jī)映射一個(gè)端口至容器內(nèi)部開(kāi)放的網(wǎng)絡(luò)端口(范圍不詳,似乎都上萬(wàn))
先申明一下,我這邊
client ip address 為192.168.0.225
registry ip address 為192.168.0.216:5000
docker run -d -it --name nginx -P 192.168.0.216:5000/nginx docker ps -a #查看容器是否在運(yùn)行 docker logs nginx #查看nginx容器的log
端口映射支持的格式有:
ip:hostport:containerport #指定ip、指定主機(jī)port、指定容器port ip::containerport #指定ip、未指定主機(jī)port、指定容器port hostport:container #未指定ip port、指定主機(jī)port、指定容器port
二、映射所有接口ip
下列命令查看到0.0.0.0監(jiān)聽(tīng)5000端口
docker run -d -it -p 5000:5000 --name registry 192.168.0.216:5000/registry docker ps -a | grep 5000
多次使用-p標(biāo)記可以綁定多個(gè)端口
docker run -d -it -p 800:80 -p 8088:8080 --name tomcat 192.168.0.216:5000/tomcat docker ps -a | egrep "(80|8080)"
三、映射到指定地址的指定端口
將容器的80 port映射到192.168.0.225:800
docker run -d -it -p 192.168.0.225:800:80 --name web_server 192.168.0.216:5000/nginx curl 192.168.0.225:800 #驗(yàn)證是否可以訪問(wèn)默認(rèn)首頁(yè)
四、映射到指定地址的udp端口
這里且不說(shuō)能不能訪問(wèn),只是一種映射方式。大家別見(jiàn)怪
docker run -d -it -p 192.168.0.225:300:3000/udp --name unknown 192.168.0.216:5000/nginx netstat -anpu |grep udp udp 0 0 192.168.0.225:300 0.0.0.0:* 24588/docker-proxy
五、查看映射端口配置
通過(guò)docker port container_ID 可以查看到容器映射了哪些端口及協(xié)議
[root@docker ~]#docker port tomcat 8080/tcp -> 192.168.0.225:32769 [root@docker ~]#docker port unknown 3000/udp -> 192.168.0.225:300
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- docker build鏡像時(shí),無(wú)法訪問(wèn)網(wǎng)絡(luò)問(wèn)題
- 在Docker中如何配置網(wǎng)絡(luò)并訪問(wèn)互聯(lián)網(wǎng)
- Docker網(wǎng)段和內(nèi)網(wǎng)網(wǎng)段ip沖突導(dǎo)致無(wú)法訪問(wèn)網(wǎng)絡(luò)的兩種解決方法
- docker容器間互相訪問(wèn)(docker bridge網(wǎng)絡(luò))
- docker 容器自定義 hosts 網(wǎng)絡(luò)訪問(wèn)操作
- Docker容器訪問(wèn)宿主機(jī)網(wǎng)絡(luò)的方法
- 如何解決docker容器訪問(wèn)不了外部網(wǎng)絡(luò)問(wèn)題
相關(guān)文章
啟動(dòng)Docker服務(wù)后顯示Docker Engine stopped解決辦法
這篇文章主要給大家介紹了關(guān)于啟動(dòng)Docker服務(wù)后顯示Docker Engine stopped的解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01
創(chuàng)建Web項(xiàng)目的Docker鏡像實(shí)例講解
這篇文章主要介紹了創(chuàng)建Web項(xiàng)目的Docker鏡像實(shí)例講解的相關(guān)資料,需要的朋友可以參考下2016-10-10
Docker底層技術(shù)Namespace Cgroup應(yīng)用詳解
在本篇文章里小編給大家整理的是關(guān)于Docker底層技術(shù)Namespace Cgroup應(yīng)用的相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-10-10
利用Docker?運(yùn)行?python?簡(jiǎn)單程序
這篇文章主要介紹了利用Docker?運(yùn)行?python?簡(jiǎn)單程序,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
聊聊kubernetes1.20用containerd替換docker(shim)的問(wèn)題
這篇文章主要介紹了kubernetes1.20用containerd替換docker(shim),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Docker安裝配置RabbitMQ的實(shí)現(xiàn)步驟
RabbitMQ是基于AMQP的一款消息管理系統(tǒng)。AMQP(Advanced?Message?Queuing?Protocol),是一個(gè)提供消息服務(wù)的應(yīng)用層標(biāo)準(zhǔn)高級(jí)消息隊(duì)列協(xié)議,其中RabbitMQ就是基于這種協(xié)議的一種實(shí)現(xiàn)2021-11-11
淺談Docker Desktop for Linux和Docker Engine
本文主要介紹了Docker Desktop for Linux和Docker Engine區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
聊聊使用docker安裝nginx提供web服務(wù)的問(wèn)題
這篇文章主要介紹了使用docker安裝nginx提供web服務(wù),docker pull nginx命令用于拉取最新版本的nginx鏡像,需要的朋友可以參考下2022-04-04

