- 将当前容器commit成镜像,重新使用-p命令映射端口
- 增加一个网络,通过nginx反代实现端口映射,无需重启容器
- 通过修改配置实现,需要重启docker服务和容器,本文使用此方法
获取容器ID
docker inspect <容器名> | grep Id
# "Id": "22132e73736a5700dd5b4215a122310220fc3192b19754917caa1b83ecb89dd3",
停止目标容器和Docker
docker stop <容器名>
service docker stop
修改配置文件
修改hostconfig.json
sudo vim /var/lib/docker/containers/<容器Id>/hostconfig.json
对如下内容进行修改
{
"PortBindings":{
"22/tcp":[{"HostIp":"","HostPort":"10112"}],
"5901/tcp":[{"HostIp":"","HostPort":"10113"}],
// 在这里增加映射端口,示例:
// "4438/tcp":[{"HostIp":"","HostPort":"4438"}],
// "443/tcp":[{"HostIp":"","HostPort":"443"}],
// ...
},
}
修改config.json
sudo vim /var/lib/docker/containers/<容器Id>/config.v2.json
对如下内容进行修改
{
"ExposedPorts":{
"22/tcp":{},
"5901/tcp":{},
// 在这里增加映射端口,需与hostconfig.json中的修改对应,示例:
// "4438/tcp":{},
// "443/tcp":{}
// ...
}
}
重启Docker服务
重启Docker服务
service docker restart
启动容器
docker container start <容器名>
查看映射端口
docker container port <容器名>