最近群晖docker某个容器端口总是被扫描,系统自动封禁了很多IP,遂想更改端口,个人对Linux 和docker非常不熟悉,只做记录,如有错误,欢迎指出
停止容器
首先用docker ps
命令查看所有的容器名称和id
例如容器ID为a1b2c3
用docker stop a1b2c3
来停止容器
修改端口映射
修改端口映射主要在了两个文件hostconfig.json 和 config.v2.json
下面是如何找到这两个文件的路径
利用cd /volume1/@docker/containers
(这里volume1是因为我的docker安装在第1卷,可根据个人修改)来进入docker/containers目录,利用命令ls
显示所有文件
这时会显示docker中所有容器的完整container id 假设要修改的容器id为a1b2c3d4e5f6
继续用cd a1b2c3d4e5f6
进入目录,用命令ls
显示所有文件
即可看到两个文件hostconfig.json 和 config.v2.json
用vi hostconfig.json
进入修改文件,
如果文件中之前没有端口映射, 应该有这样的一段:
"PortBindings":{}
增加一个映射, 这样写:
"PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"60000"}]}
前一个数字是容器端口, 后一个是宿主机端口。将宿主机的60000端口映射到容器的8080端口
如果文件中已有端口映射语句,换一个端口号即可。
如下图
对 config.v2.json做同样的处理即可
该部分结束
重启docker
synoservice --disable pkgctl-Docker
synoservice --enable pkgctl-Docker
或者
synoservice --restart pkgctl-Docker
最后再去群晖网也管理界面中把docker的端口映射修改以下即可
本地端口,对应上文的60000,容器端口对应上文的8080
可能步骤有冗余,欢迎指正!
P.S.
重启docker容器 synoservice --restart pkgctl-Docker
列出所有服务 synoservicecfg --list
查询docker 根目录 docker info | grep "Docker Root Dir"
参考文献
[1] https://blog.csdn.net/m0_37886429/article/details/82757116