Docker容器修改端口映射的實現
可解決問題如下
(1) 在不刪除現有容器的情況下, 修改原有容器的端口映射;
(2) 創(chuàng)建容器的時候指定了一個端口映射, 但是創(chuàng)建之后的容器存在多個端口映射; 具體描述
1 首先創(chuàng)建一個容器并指定端口映射;
sudo docker run -it --name forge_restful -v /data01/wangxiaofei01/project/restful/wanmingTask/forge_restful_api -p 8076:8076 -d 010979f7d3c2
2 實際容器存在連個端口映射

解決方案
1、停止容器
docker stop 容器id
2、停止docker服務
systemctl stop docker
3、修改這個容器的hostconfig.json(對應下面的文件1)的端口
cd /var/lib/docker/CONTAINER_ID vi hostconfig.json
備注: 可通過inspect命令查看對應容器的id

如果之前沒有端口映射, 應該有這樣的一段:
“PortBindings”:{}
增加一個映射,這樣寫:
“PortBindings”:{“3306/tcp”:[{“HostIp”:"",“HostPort”:“3307”}]}
前一個數字3306是容器端口,后一個3307是宿主機端口而修改現有端口映射更簡單,把端口號改掉就行
例如:“PortBindings”:{“3306/tcp”:[{“HostIp”:"",“HostPort”:“3306”}]}
4、config.v2.json(對應文件2)里面也記錄了端口,也要修改;
5 重啟docker服務和對應容器
systemctl start docker
結果

文件1 核心配置
{
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {
"8076/tcp": [{
"HostIp": "",
"HostPort": "8076"
}]
}
}
文件2 config.v2.json 核心配置
絕對路徑: /var/lib/docker/containers/對應容器的id/config.v2.json
{
"StreamConfig": {},
"State": {
"Running": false,
"Paused": false,
"Health": null
},
"Path": "/bin/bash",
"Config": {
"Hostname": "4a0d272304a5",
"Domainname": "",
"AttachStderr": false,
"ExposedPorts": {
"8076/tcp": {},
"8077/tcp": {}
},
},
}
到此這篇關于Docker容器修改端口映射的實現的文章就介紹到這了,更多相關Docker 修改端口映射內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Docker中的error during connect異常情況
這篇文章主要介紹了解決Docker中的error during connect異常情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Alpine鏡像中telnet轉移至busybox-extras
今天小編就為大家分享一篇關于Alpine鏡像中telnet轉移至busybox-extras,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
Jenkins構建Docker鏡像并推送至Harbor倉庫的實現
本文主要介紹了Jenkins構建Docker鏡像并推送至Harbor倉庫,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09

