K8sDocker-Podman

不销毁容器,修改 Podman 容器的端口号

2022-09-01  本文已影响0人  ___n

一个窗口启动后,想要修改容器开放的端口号,一般的做法,都是先把容器销毁,然后重新编辑启动命令,将要开放的端口号修改过来,然后再重新启动容器。

如果用的是DOCKER,也可以从配置文件入手,修改配置文件后只需要重新启动容器就可以

但是 Podman 与众不同。

Podman 的容器配置数据,存放于一个叫 bolt_state.db 的数据库文件中,存放于 /var/lib/containers/storage/libpod/bolt_state.db ,是用Go编写的一个存储库(https://github.com/boltdb/bolt)。如果确认要修改,可以直接使用 API 或 boltbrowser(BoltDB文件的CLI浏览器)(https://github.com/br0xen/boltbrowser)对其进行操作。

安装运行环境

yum install -y golang
yum install -y git
go get github.com/br0xen/boltbrowser

文件会安装在 <go工作目录>/go/bin/boltbrowser下 ,以下简写 /go/bin/boltbrowser

修改配置文件

  1. 停止容器
  2. 备份 bolt_state.db
  3. podman inspect <容器名> | grep Id 查看容器 ID
  4. 执行命令

boltbrowser --help 可以查看命令帮助

/go/bin/boltbrowser /var/lib/containers/storage/libpod/bolt_state.db

bolt_statle.db 是一个键值对存储库 , 修改的值在 ctr -> <容器ID> -> config

值是一个JSON文件,找到自己想要修改的端口号,进行修改

"portMappings": [
    {
        "containerPort": <container_port>,
        "hostIP": "",
        "hostPort": <host_port>,
        "protocol": "tcp"
    },
    {
        "containerPort": <container_port>,
        "hostIP": "",
        "hostPort": <host_port>,
        "protocol": "tcp"
    }
]

修改完成后,记得用 podman inspect <容器ID> 验证一下 , 最后重新启动容器,大功造成!

一顿骚操作,其实还是销毁后重新启动一个容器方便一点 !

`

上一篇下一篇

猜你喜欢

热点阅读