日韩精品成人无码专区免费-国产99久久久久久免费看-国产精品丝袜久久久久久不卡-国产精品无码一区二区三区

Docker容器綁定外部IP和端口

發布時間:2024-05-19 點擊:123
docker允許通過外部訪問容器或者容器之間互聯的方式來提供網絡服務。
以下操作通過myfirstapp鏡像模擬
1、外部訪問容器
容器啟動之后,容器中可以運行一些網絡應用,通過-p或-p參數來指定端口映射。
a、用-p(大寫)標記時,docker會隨機選擇一個端口映射到容器內部開放的網絡端口上。
$ docker run -d -p myfirstapp python app.py $ docker ps container id image command created status ports names dbcf5d3290ba 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 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: f43ed2810353 visits:cannot connect to redis, counter disabled $ curl http://192.168.1.160:4001/ hello hello! hostname:f43ed2810353 visits: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.py2.查看容器綁定和映射的端口及ip地址
$ docker port 44de1b0b5312(容器id) 80/tcp -> 127.0.0.1:327703.注意事項
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 44e703c1279a 5000/tcp -> 0.0.0.0:5005 80/tcp -> 0.0.0.0:5006

電腦通過360云盤檢測網絡上傳和下載速度的方法
塔式服務器新創云硬盤轉速10000rpm
Keep競品分析
這個賬號不是我的但是被綁定了西部數碼賬號如何解綁
手機網站的好處有哪些
百度云服務器如何續費
哪些豹子域名算是精品域名?
虛擬機系統可移動設備中沒有USB網卡選項怎么解決