0、查看docker中的容器:
docker container list --all
结果中的CONTAINER ID列为容器id
1、 查看容器的Id
docker inspect <容器id> | grep Id
查看容器hash,<容器id>由步骤0)获得
2、 停止运行中的容器
docker stop <容器id>
3、 修改映射端口
vim /var/lib/docker/containers/[容器hash]/hostconfig.json,(有人提到,如果config.v2.json里面也记录了端口,也要修改)
编辑容器配置文件,<容器hash>由步骤1)获得
修改PortBindings参数配置,宿主机8001端口映射容器80端口示例:
“PortBindings”:{“80/tcp”:[{“HostIp”:””,”HostPort”:”8001″}]},”
4、重新启动docker引擎
systemctl restart docker
5、重新启动docker容器
docker start <容器id>
如果修改后无效:
1) 停止容器
2) 停止docker服务(systemctl stop docker)
3) 修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)cd /var/lib/docker/3b6ef264a040* #这里是CONTAINER ID
vi hostconfig.json
如果之前没有端口映射, 应该有这样的一段:
"PortBindings":{}
增加一个映射, 这样写:
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}
前一个数字是容器端口, 后一个是宿主机端口.
而修改现有端口映射更简单, 把端口号改掉就行.4) 启动docker服务(systemctl start docker)
5) 启动容器