docker容器啟動(dòng)后如何修改或添加端口
在docker run創(chuàng)建并運(yùn)行容器的時(shí)候,可以通過(guò)-p指定端口映射規(guī)則。
但是,大家可能也會(huì)遇到需要繼續(xù)添加2個(gè)或者3個(gè)端口進(jìn)行映射的問(wèn)題。
一、通常間接的辦法
保存鏡像,再創(chuàng)建一個(gè)新的容器,在創(chuàng)建時(shí)指定多個(gè)端口映射。
1)停止docker容器
docker stop container01
2)commit該docker容器
docker commit container01 new_image:tag
3)用前一步新生成的鏡像重新起一個(gè)容器,其中1888
是服務(wù)器的端口,8888
是容器的端口
docker run --name container02 -p 1888:8888 new_image:tag
這種方式的優(yōu)點(diǎn)是不會(huì)影響統(tǒng)一宿主機(jī)上的其他容器,缺點(diǎn)是管理起來(lái)顯得比較亂。
二、修改文件端口,重啟docker服務(wù)
1)停止docker(一定要先停止dokcer,不然直接修改配置文件不會(huì)生效)
systemctl stop docker
2)進(jìn)入docker文件夾,找到容器的位置:
如果不是root用戶(hù)查看的話,可能會(huì)出現(xiàn)權(quán)限不夠的問(wèn)題,可以通過(guò)chown更改文件夾權(quán)限,docker的默認(rèn)文件夾應(yīng)該是/var/lib/docker
,這里我已經(jīng)將默認(rèn)文件夾的位置移動(dòng)到了/sda1/docker/docker
:
sudo chown -R apr:user /sda1/docker/docker
其中,apr表示用戶(hù)當(dāng)前所在的用戶(hù)組,user表示用戶(hù)賬戶(hù)名稱(chēng),可以使用groups user
查看用戶(hù)user所在的用戶(hù)組
3)進(jìn)入docker目錄下的containner文件夾:
4)在這里能看到已經(jīng)創(chuàng)建的容器id文件夾,在terminal中輸入docker ps -a
查看需要修改的容器ID:
5)進(jìn)入對(duì)應(yīng)的容器文件夾:
6)先修改這個(gè)容器的hostconfig.json文件中的端口
如果之前沒(méi)有端口映射, 應(yīng)該有這樣的一段:
“PortBindings”:{}
增加一個(gè)映射, 這樣寫(xiě):
“PortBindings”:{“8888/tcp”:[{“HostIp”:””,“HostPort”:“1888”}]}
前一個(gè)數(shù)字是容器端口, 后一個(gè)是宿主機(jī)端口。將宿主機(jī)的1888端口映射到容器的8888端口
如果增加多個(gè),就是
“PortBindings”:{“8888/tcp”:[{“HostIp”:””,“HostPort”:“1888”}],“6006/tcp”:[{“HostIp”:””,“HostPort”:“1006”}]}
將宿主機(jī)的1888和1006端口映射到容器的8888和6006端口
而修改現(xiàn)有端口映射更簡(jiǎn)單, 把端口號(hào)改掉就行。
7)如果config.v2.json里面也記錄了端口,需要修改ExportPorts
8)重啟docker服務(wù)
systemctl restart docker
9)查看配置項(xiàng)已經(jīng)修改成功
docker inspect CONTAINER ID
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在docker-compose.yml文件中配置容器的環(huán)境變量方式
本文介紹了在docker-compose.yml文件中設(shè)置和使用環(huán)境變量的方法,包括直接設(shè)置環(huán)境變量、從文件讀取環(huán)境變量以及使用多個(gè)環(huán)境文件進(jìn)行不同部署環(huán)境的配置2024-11-11docker --link容器互聯(lián)的實(shí)現(xiàn)
–link可以通過(guò)容器名互相通信,容器間共享環(huán)境變量,本文主要介紹了docker --link容器互聯(lián)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Docker跨主機(jī)容器通信overlay實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Docker跨主機(jī)容器通信overlay實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05docker修改容器的端口、容器名、映射地址以及注意事項(xiàng)
在日常的docker運(yùn)維中,經(jīng)常遇到修改容器的端口、容器名、映射地址等信息,這篇文章主要給大家介紹了關(guān)于docker修改容器的端口、容器名、映射地址以及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下2022-08-08如何使用Docker和cpolar在Linux服務(wù)器上搭建DashDot監(jiān)控面板
本文主要介紹如何在Linux服務(wù)器上使用Docker和cpolar技術(shù)搭建DashDot監(jiān)控面板,實(shí)現(xiàn)實(shí)時(shí)服務(wù)器監(jiān)控,DashDot提供直觀的監(jiān)控界面和豐富的指標(biāo),通過(guò)cpolar可以實(shí)現(xiàn)公網(wǎng)訪問(wèn),方便用戶(hù)隨時(shí)了解服務(wù)器狀態(tài),文章詳細(xì)說(shuō)明了環(huán)境準(zhǔn)備、安裝Docker、配置DashDot和cpolar的步驟2024-09-09