需求:修改容器可用端口范围
操作:将容器的/etc/sysctl.conf 文件挂载出来,并配置可用端口范围
net.ipv4.ip_local_port_range = 1024 65535
报错
端口范围的配置并没有生效。进入容器,发现文件被正常挂载了。于是手动执行一下,报错如下:
bash-5.0$ sudo sysctl -p sysctl: error setting key net.ipv4.ip_local_port_range : Read-only file system sysctl: error setting key fs.file-max : Read-only file system sysctl: error setting key fs.nr_open : Read-only file system
docker 限制了对容器中 /proc 和 /sys 的访问
docker-compose 加入了sysctls选项来解决这个问题
emqx: image: "emqx/emqx:4.3.11" sysctls: - net.ipv4.ip_local_port_range=1024 65535
用特权模式启动
修改docker-compose.yml 文件
version: "3.1" services: emqx: image: "emqx/emqx:4.3.11" privileged: true #加入这一行
启动容器后,在容器中执行:
sysctl -p
不推荐缘由:
重启就没了
容器获得了过高的权限
