
一個窗口啟動后,想要修改容器開放的端口號,一般的做法,都是先把容器銷毀,然后重新編輯啟動命令,將要開放的端口號修改過來,然后再重新啟動容器。
如果用的是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)對其進行操作。
安裝運行環(huán)境
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 - 執(zhí)行命令
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> 驗證一下 , 最后重新啟動容器,大功造成!
一頓騷操作,其實還是銷毀后重新啟動一個容器方便一點 !
`