修改运行中容器的端口

正在运行的容器端口冲突了,但是还需要这个容器,怎么办?只能修改端口了

过程:

  • 停止需要修改的容器

  • 修改hostconfig.json文件

  • 重启 docker 服务

  • 启动修改容器

停止需要修改的容器

[root@test ~]# docker stop grafana

查看hostname路径

[root@test ~]# docker inspect grafana |grep HostnamePath"HostnamePath": "/var/lib/docker/containers/39b1633c38f45460d6fb11161e04550dc97bc68b345ae276eb12eb07babd1f42/hostname",

进入容器路径

[root@test ~]# cd /var/lib/docker/containers/39b1633c38f45460d6fb11161e04550dc97bc68b345ae276eb12eb07babd1f42/

修改文件中的 HostPort(外部地址)

根据个人需求修改

[root@test ~]# vim hostconfig.json"PortBindings":{"9200/tcp":[{"HostIp":"","HostPort":"9201"}],# 修改外部端口就是所有HostPort名字的端口

停止其他容器

[root@test ~]# docker stop node。。。

停止 docker服务

[root@test ~]# systemctl stop docker

启动 docker服务

[root@test ~]# systemctl startdocker

启动其他容器

[root@test ~]# docker start node。。。

报错 container with id exists 处理

# 启动报错[root@test ~]# docker start grafanaError response from daemon: oci runtime error: container with id exists: 39b1633c38f45460d6fb11161e04550dc97bc68b345ae276eb12eb07babd1f42Error: failed to start containers: grafana# 搜索 /run/runc/ 下的 docker id[root@test ~]# find /run -name 39b1633c38f45460d6fb11161e04550dc97bc68b345ae276eb12eb07babd1f42/run/runc/39b1633c38f45460d6fb11161e04550dc97bc68b345ae276eb12eb07babd1f42# 找到 /run/runc 开头的 删除重启即可 [root@test ~]# rm -rf /run/runc/39b1633c38f45460d6fb11161e04550dc97bc68b345ae276eb12eb07babd1f42