创建容器时忘了添加端口映射了,又不想重新生成镜像。我自己找到了以下的方法
一、找到需要修改的配置文件
执行命令
docker ps -a
查看你的容器的id
根据id找到以下路径(id带入进去)
/var/lib/docker/containers/{{CONTAINER ID}}
我们需要修改两个文件
- hostconfig.json
- config.v2.json
二、停止docker(不是停止容器)
通过systemctl stop docker
或者 service docker stop
停止docker
三、修改hostconfig.json文件
vim hostconfig.json
找到PortBindings
字段
添加或者修改为:
"PortBindings": {
"80/tcp": [{
"HostIp": "",
"HostPort": "8080"
}]
}
这里的意思是80端口映射到8080
按Esc
退出wq
保存
四、修改config.v2.json文件
文件
vim config.v2.json
在Config下找到ExposedPorts
字段
"Config": {
...
"ExposedPorts": {
"80/tcp": {}
}
...
}
如果没有则添加
如果有则修改:
"Config": {
...
"ExposedPorts": {
"80/tcp": {"HostIp": "",
"HostPort": "8080"}
}
...
}
五、重启docker服务,配置就生效了
使用
systemctl start docker
重启docker,使用docker ps
就可以查看到了映射
PS:
我这里是先停止了容器再执行以上所有操作,最后再重启(docker start)容器,操作就成功了
但是资料显示不停止也没影响,如果要是执行了操作没作用,可以先把容器停止了~~
记录一下,防止以后还要用到,现在挺多资料好杂 ヾ(≧▽≦*)oヾ(≧▽≦*)oヾ(≧▽≦*)o