不销毁容器,修改 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
修改配置文件
- 停止容器
- 备份 bolt_state.db
- 用
podman inspect <容器名> | grep Id
查看容器ID
- 执行命令
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>
验证一下 , 最后重新启动容器,大功造成!
一顿骚操作,其实还是销毁后重新启动一个容器方便一点 !
`