docker: 修改容器的端口

修改运行中容器的端口

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

过程:

  • 停止需要修改的容器

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

你可能感兴趣的:(docker,容器,运维)