docker: 修改运行容器的端口

文章描述了如何在运行中的容器端口冲突时,通过停止容器、修改hostconfig.json文件将外部端口从9200改为9201,然后停止和重启Docker服务以及相关容器,最后处理可能的containeridexists错误的过程。
摘要由CSDN通过智能技术生成

修改运行中容器的端口

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

过程:

  • 停止需要修改的容器

  • 修改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 start  docker

启动其他容器

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

报错 container with id exists 处理

# 启动报错
[root@test ~]# docker start grafana
Error response from daemon: oci runtime error: container with id exists: 39b1633c38f45460d6fb11161e04550dc97bc68b345ae276eb12eb07babd1f42
Error: 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值