docker容器新增端口映射
記憶中,docker並沒有提供直接添加端口映射的接口,所以我們只能修改容器的配置文件了!期望新版本能夠更新此功能吧。
當前docker版本:Docker version 19.03.12
1、查看容器哈希編碼
$ docker inspect centos-desktop-vnc | grep Id
"Id": "22132e73736a5700dd5b4215a122310220fc3192b19754917caa1b83ecb89dd3",
這里的Id就是哈希編碼。
2、停止目標容器
$ docker stop centos-desktop-vnc
3、修改配置文件
$ sudo vim /var/lib/docker/containers/<容器Id>/hostconfig.json
容器的本身端口映射:
{
"PortBindings":{
"22/tcp":[{"HostIp":"","HostPort":"10112"}],
"5901/tcp":[{"HostIp":"","HostPort":"10113"}],
},
}
容器本身的端口映射配置是:
{
"PortBindings":{
"22/tcp":[{"HostIp":"","HostPort":"10112"}],
"5901/tcp":[{"HostIp":"","HostPort":"10113"}],
"3306/tcp": [{"HostIp":"","HostPort":"10114"}],
"5672/tcp": [{"HostIp":"","HostPort":"10115"}],
"6379/tcp": [{"HostIp":"","HostPort":"10116"}],
"8080/tcp": [{"HostIp":"","HostPort":"10117"}],
"80/tcp": [{"HostIp":"","HostPort":"10118"}],
},
}
修改下一個配置:
$ sudo vim /var/lib/docker/containers/<容器Id>/config.v2.json
將下面字段的端口補齊,如我這里要添加3306、5672、6379、8080、80.
{
"ExposedPorts":{
"22/tcp":{},
"5901/tcp":{},
"3306/tcp":{},
"5672/tcp":{},
"6379/tcp":{},
"8080/tcp":{},
"80/tcp":{}
}
}
4、重啟docker服務
$ service docker restart
這一步耗時比較久!
5、重啟容器
$ docker start centos-desktop-vnc
訪問相應的端口就可以使用了!
完