溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

docker怎么修改容器的ip和端口映射

發(fā)布時(shí)間:2021-08-22 07:10:40 來(lái)源:億速云 閱讀:2142 作者:chen 欄目:建站服務(wù)器

這篇文章主要介紹“docker怎么修改容器的ip和端口映射”,在日常操作中,相信很多人在docker怎么修改容器的ip和端口映射問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”docker怎么修改容器的ip和端口映射”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

docker如何修改容器的ip和端口映射?默認(rèn)情況下,容器可以建立到外網(wǎng)網(wǎng)絡(luò)的鏈接,但是外網(wǎng)網(wǎng)絡(luò)無(wú)法連接到容器。docker允許通過(guò)外部訪問(wèn)容器或容器互聯(lián)的方式來(lái)提供網(wǎng)絡(luò)服務(wù),外部訪問(wèn)容器可以在容器中運(yùn)行網(wǎng)絡(luò)應(yīng)用可以通過(guò)-p 或 -P參數(shù)來(lái)指定端口映射。

-P:默認(rèn)指定端口 -p自定義指定端口,以下操作通過(guò)myfirstapp鏡像模擬

1、外部訪問(wèn)容器

docker容器啟動(dòng)之后,容器服務(wù)中可以運(yùn)行一些網(wǎng)絡(luò)應(yīng)用,通過(guò)-p或-P參數(shù)來(lái)指定端口映射。

a、用-P(大寫(xiě))標(biāo)記時(shí),docker會(huì)隨機(jī)選擇一個(gè)端口映射到容器內(nèi)部開(kāi)放的網(wǎng)絡(luò)端口上。

$ 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

此時(shí)訪問(wèn)本機(jī)的32770端口就可以訪問(wèn)到容器內(nèi)web應(yīng)用提供的界面。

$ curl http://192.168.1.160:32770/
<h4>Hello HELLO!</h4><b>Hostname:</b> dbcf5d3290ba<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>

也可以使用docker logs來(lái)查看應(yīng)用的信息

$ 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(小寫(xiě))標(biāo)記時(shí)則可以指定要映射的端口,并且在一個(gè)指定端口上只可以綁定一個(gè)容器,支持的格式有:

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/
<h4>Hello HELLO!</h4><b>Hostname:</b> f43ed2810353<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>
$ curl http://192.168.1.160:4001/
<h4>Hello HELLO!</h4><b>Hostname:</b> f43ed2810353<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>

可以看到本地4000端口已經(jīng)被映射,換一個(gè)端口4001也被映射。

docker默認(rèn)會(huì)映射本地所有的地址?,F(xiàn)在我們來(lái)嘗試一下映射到指定地址的指定端口

$ docker run -d -p 127.0.0.1:4000:80 myfirstapp python app.py
$ curl http://127.0.0.1:4000/ ##訪問(wèn)通過(guò)
$ curl http://localhost:4000/ ##訪問(wèn)通過(guò)
$ curl http://192.168.1.160:4000/ ##訪問(wèn)拒絕
curl: (7) Failed connect to 192.168.1.160:4000; 拒絕連接

然后要訪問(wèn)容器中的應(yīng)用只能通過(guò)127.0.0.1這個(gè)ip訪問(wèn)。

接下來(lái)是綁定本機(jī)的任意端口到容器的80端口,隨機(jī)分配一個(gè)端口

$ 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/ ##訪問(wèn)通過(guò)
$ curl http://localhost:32770/ ##訪問(wèn)通過(guò)
$ curl http://192.168.1.160:32770/ ##訪問(wèn)拒絕

還可以指定通信協(xié)議

docker run -d -p 5003:80/udp myfirstapp python app.py

2.查看容器綁定和映射的端口及Ip地址

$ docker port 44de1b0b5312(容器ID)
80/tcp -> 127.0.0.1:32770

到此,關(guān)于“docker怎么修改容器的ip和端口映射”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI