修改docker容器端口映射到主機(jī)的方法實(shí)現(xiàn)
修改docker容器端口映射的方法
如何修改已經(jīng)創(chuàng)建好的容器的映射端口
我們都知道docker在創(chuàng)建時(shí)可以指定端口映射,但是容器一旦創(chuàng)建好,就沒(méi)有命令支持直接修改映射端口。如果我們已經(jīng)對(duì)容器里面的內(nèi)容已經(jīng)做了一定更改,不能刪除進(jìn)行重建,怎么辦呢?通常間接的辦法是,保存鏡像,再創(chuàng)建一個(gè)新的容器,在創(chuàng)建時(shí)指定新的端口映射。
有沒(méi)有辦法不保存鏡像而直接修改已有的這個(gè)容器呢?有??蓞⒖既缦?br />https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-docker-container
測(cè)試:以之前創(chuàng)建的nginx容器為例
方法一:
1) 停止容器
2) 停止docker服務(wù)(systemctl stop docker.socket)??梢蕴^(guò)上一步
3) 修改這個(gè)容器的hostconfig.json文件中的端口(如果config.v2.json里面也記錄了端口,也要修改,但是貌似停止容器后,這個(gè)文件里面就沒(méi)有相應(yīng)配置了,可能跟版本有關(guān)系),注意是修改hostport后面的端口
4) 啟動(dòng)docker服務(wù)(systemctl start docker)
5) 啟動(dòng)nginx容器
親測(cè)有效
[root@k8s-m1 ~]# docker ps -a|grep nginx 10016be35a75 nginx "/docker-entrypoint.…" 11 hours ago Up 11 hours 0.0.0.0:80->80/tcp nginx-journald #需要停止docker服務(wù),只停容器不行 [root@k8s-m1 10016be35a75db625bac1a2eb8a8ac618f0ba8c7fbbf53812e52e9e0e620f45e]# systemctl stop docker [root@k8s-m1 ~]# cd /var/lib/docker/containers/10016be35a75db625bac1a2eb8a8ac618f0ba8c7fbbf53812e52e9e0e620f45e/ [root@k8s-m1 10016be35a75db625bac1a2eb8a8ac618f0ba8c7fbbf53812e52e9e0e620f45e]# vim hostconfig.json [root@k8s-m1 10016be35a75db625bac1a2eb8a8ac618f0ba8c7fbbf53812e52e9e0e620f45e]# vim config.v2.json [root@k8s-m1 10016be35a75db625bac1a2eb8a8ac618f0ba8c7fbbf53812e52e9e0e620f45e]# systemctl start docker [root@k8s-m1 10016be35a75db625bac1a2eb8a8ac618f0ba8c7fbbf53812e52e9e0e620f45e]# docker start 100 [root@k8s-m1 10016be35a75db625bac1a2eb8a8ac618f0ba8c7fbbf53812e52e9e0e620f45e]# docker ps -a|grep nginx 10016be35a75 nginx "/docker-entrypoint.…" 11 hours ago Up 17 seconds 0.0.0.0:8088->80/tcp nginx-journald
根據(jù)結(jié)果發(fā)現(xiàn)映射端口已經(jīng)從原來(lái)的80變成了8088。
方法二:
1)獲得容器nginx-journald的IP,下面兩種方法都可以
將container_name 換成實(shí)際環(huán)境中的容器名
[root@k8s-m1 ~]# docker inspect --format='{{.Name}}-{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx-journald
/nginx-journald-172.16.0.3
[root@k8s-m1 ~]#docker inspect nginx-journald | grep IPAddress
[root@k8s-m1 ~]# docker inspect nginx-journald | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.16.0.3",
"IPAddress": "172.16.0.3",2)iptable轉(zhuǎn)發(fā)端口
將宿主機(jī)的81端口映射到容器的80端口
#下面的iptables意思就是目的地址為81端口的流量轉(zhuǎn)發(fā)到172.16.0.3:80 [root@k8s-m1 ~]# iptables -t nat -A DOCKER -p tcp --dport 81 -j DNAT --to-destination 172.16.0.3:80
區(qū)別:第二種方法相當(dāng)于是通過(guò)iptables轉(zhuǎn)發(fā)增加了一個(gè)映射端口,原來(lái)的映射端口其實(shí)也還在,也還能夠進(jìn)行訪問(wèn)。而第一種只有一個(gè)端口能進(jìn)行訪問(wèn)。
到此這篇關(guān)于修改docker容器端口映射到主機(jī)的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)docker容器端口映射內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker部署springboot項(xiàng)目實(shí)例解析
這篇文章主要介紹了docker部署springboot項(xiàng)目實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Docker加載鏡像時(shí)出現(xiàn) “no space left on dev
在 Docker 使用過(guò)程中,“no space left on device” 錯(cuò)誤是常見的磁盤空間不足問(wèn)題,本文將結(jié)合實(shí)戰(zhàn)操作,詳細(xì)介紹該問(wèn)題的排查與解決步驟,幫助開發(fā)者快速定位并修復(fù)問(wèn)題,需要的朋友可以參考下2026-03-03
Docker部署PairDrop文件傳輸工具的項(xiàng)目實(shí)踐
本文主要介紹了Docker部署PairDrop文件傳輸工具的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-09-09
Docker?Desktop容器的自啟動(dòng)設(shè)置修改步驟
Docker作為一種輕量級(jí)的容器化技術(shù),在開發(fā)、測(cè)試、部署等環(huán)節(jié)發(fā)揮著至關(guān)重要的作用,這篇文章主要介紹了Docker?Desktop容器的自啟動(dòng)設(shè)置修改的相關(guān)資料,需要的朋友可以參考下2025-04-04
Docker調(diào)度器Kubernetes使用過(guò)程
Docker和Kubernetes在使用方式上有相似性,初次接觸這兩個(gè)技術(shù)的同學(xué)常常會(huì)搞混,但實(shí)際上它們并不是解決同一個(gè)問(wèn)題的技術(shù),也沒(méi)有辦法用其中一個(gè)替代另一個(gè)。通俗一點(diǎn)來(lái)說(shuō),Docker解決的是容器技術(shù)直接相關(guān)的問(wèn)題,而Kubernetes更多地關(guān)注在集群上調(diào)度和部署容器應(yīng)用2022-12-12
使用docker啟動(dòng)redis守護(hù)進(jìn)程的詳細(xì)流程
在現(xiàn)代軟件開發(fā)中,緩存和消息隊(duì)列是提高應(yīng)用性能和擴(kuò)展性的關(guān)鍵,Redis 是一種流行的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),使用 Docker 容器化技術(shù)可以方便地部署和管理 Redis 服務(wù),本文給大家介紹了使用docker啟動(dòng)redis守護(hù)進(jìn)程的詳細(xì)流程,需要的朋友可以參考下2025-01-01
前端實(shí)現(xiàn)自動(dòng)化部署docker+Jenkins的完整過(guò)程
在現(xiàn)代前端開發(fā)中自動(dòng)化部署變得越來(lái)越重要,通過(guò)使用Docker、Jenkins和Nginx,我們可以實(shí)現(xiàn)高效的前端自動(dòng)化部署,這篇文章主要介紹了前端實(shí)現(xiàn)自動(dòng)化部署docker+Jenkins的完整過(guò)程,需要的朋友可以參考下2025-07-07
解決Mac下 docker 無(wú)法 ping 通宿主機(jī)的問(wèn)題
這篇文章主要介紹了解決Mac下 docker 無(wú)法 ping 通宿主機(jī)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11

