群晖修改docker端口映射

本文档详细介绍了如何在群晖系统中修改Docker容器的端口映射,以避免端口被频繁扫描。步骤包括停止容器、编辑hostconfig.json和config.v2.json文件以更新端口映射,然后重启Docker服务。具体操作涉及使用dockerps、dockerstop命令,以及vi编辑器修改配置文件,并在最后更新群晖网页界面的端口设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近群晖docker某个容器端口总是被扫描,系统自动封禁了很多IP,遂想更改端口,个人对Linux 和docker非常不熟悉,只做记录,如有错误,欢迎指出

流程分为以下几个步骤:

停止容器

首先用docker ps命令查看所有的容器名称和id
例如容器ID为a1b2c3
docker stop a1b2c3来停止容器

修改端口映射

修改端口映射主要在了两个文件hostconfig.jsonconfig.v2.json
下面是如何找到这两个文件的路径
利用cd /volume1/@docker/containers(这里volume1是因为我的docker安装在第1卷,可根据个人修改)来进入docker/containers目录,利用命令ls显示所有文件
这时会显示docker中所有容器的完整container id 假设要修改的容器id为a1b2c3d4e5f6
继续用cd a1b2c3d4e5f6进入目录,用命令ls显示所有文件
即可看到两个文件hostconfig.jsonconfig.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

### 群晖Docker中8096端口冲突解决方案 在群晖NAS上运行Docker容器时,如果出现8096端口冲突的问题,可以采取以下方法来解决。根据提供的引用内容以及相关知识,以下是几种可行的解决方案。 #### 1. 修改容器的端口映射 通过调整Docker容器的端口映射,将冲突的8096端口映射到其他未被占用的端口。例如,假设当前冲突的端口是8096,可以将其映射到一个非冲突的端口(如8097)。使用以下命令实现: ```bash docker run -d --name new-container -p 8097:8096 your-image-name ``` 上述命令中的`-p 8097:8096`表示将宿主机的8097端口映射到容器内的8096端口[^2]。这样即使宿主机上的8096端口被占用,容器仍然可以通过新的端口访问。 #### 2. 使用macvlan网络驱动 macvlan是一种网络隔离方案,可以直接为Docker容器分配独立的IP地址,从而避免端口冲突问题。创建macvlan网络并启动容器的步骤如下: 1. 创建macvlan网络: ```bash docker network create -d macvlan \ --subnet=192.168.1.0/24 \ --gateway=192.168.1.1 \ -o parent=eth0 my_macvlan_net ``` 2. 启动容器并指定macvlan网络: ```bash docker run -d --name new-container --net=my_macvlan_net your-image-name ``` 通过这种方式,容器将拥有独立的IP地址和网络配置,不再依赖宿主机的端口映射。 #### 3. 检查并释放冲突端口 如果8096端口被其他服务占用,可以先检查占用该端口的服务,并考虑停止或重新配置这些服务以释放端口。使用以下命令检查端口占用情况: ```bash netstat -tuln | grep 8096 ``` 如果发现有进程占用了8096端口,可以通过以下命令停止相关进程: ```bash kill -9 $(lsof -t -i:8096) ``` 释放端口后,重新启动Docker容器即可正常映射8096端口[^5]。 #### 4. 修改Docker-compose.yml文件 如果使用`docker-compose`部署容器,可以在`docker-compose.yml`文件中修改端口映射部分。例如,将原本映射到8096的端口改为其他端口: ```yaml version: '3' services: app: image: your-image-name ports: - "8097:8096" ``` 保存文件后,重新启动服务: ```bash docker-compose up -d ``` 通过这种方式,可以轻松调整端口映射,避免冲突[^4]。 --- ### 注意事项 - 在选择解决方案时,需要根据实际的技术水平和网络环境进行权衡。如果对macvlan网络不熟悉,建议优先尝试修改端口映射的方法。 - 如果群晖NAS上已经运行了多个Docker容器,确保新配置的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值