最近群晖docker某个容器端口总是被扫描,系统自动封禁了很多IP,遂想更改端口,个人对Linux 和docker非常不熟悉,只做记录,如有错误,欢迎指出
流程分为以下几个步骤:
- 停止容器
- 修改端口映射
- 重启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
代码语言:javascript复制synoservice --disable pkgctl-Docker
synoservice --enable pkgctl-Docker
或者
synoservice --restart pkgctl-Docker
最后再去群晖网也管理界面中把docker的端口映射修改以下即可 本地端口,对应上文的60000,容器端口对应上文的8080
可能步骤有冗余,欢迎指正!
P.S.
代码语言:javascript复制重启docker容器 synoservice --restart pkgctl-Docker
列出所有服务 synoservicecfg --list
查询docker 根目录 docker info | grep "Docker Root Dir"
参考文献 [1] https://blog.csdn.net/m0_37886429/article/details/82757116
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180751.html原文链接:https://javaforall.cn