日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Docker容器修改端口映射的實現_docker

作者:馬克圖布No1 ? 更新時間: 2022-08-20 編程語言

可解決問題如下

(1) 在不刪除現有容器的情況下, 修改原有容器的端口映射;

(2) 創建容器的時候指定了一個端口映射, 但是創建之后的容器存在多個端口映射; 具體描述

1 首先創建一個容器并指定端口映射;

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": {}
		},
	},

}

原文鏈接:https://blog.csdn.net/weixin_40271376/article/details/123850847

欄目分類
最近更新