docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。
但这样太麻烦了。现在有新方案来解决掉:
操作步骤:
1 查看容器
docker ps -a
image
2 停止容器
docker stop f503
3 停止docker服务
systemctl stop docker
4 修改文件
vi /var/lib/docker/containers/{container_id}/hostconfig.json
找到 这个 PortBindings 值。在这个json集合里边追加新端口
"PortBindings": { "80/tcp": [
{ "HostIp": "", "HostPort": "80" }
], "8888/tcp": [
{ "HostIp": "", "HostPort": "8888" }
]
}
5 启动docker服务
systemctl start docker
6 启动容器
docker start f503
备注: 第4步修改文件要注意,如果config.v2.json里面也记录了端口,也要修改,
config.v2.json文件里边
修改值 : config->ExposedPorts 和 networsettings->Ports , 参看下图
"Config": {
.... "ExposedPorts": { "80/tcp": {}, "8888/tcp": {}
},
....
}, "NetworkSettings": {
.... "Ports": { "80/tcp": [
{ "HostIp": "", "HostPort": "80" }
],
image
image
网友评论