先看C知道怎么说:
要设置 Docker 容器中的端口不被暴露,可以使用 -p 或 --publish 选项来控制端口的映射。标准的 -p 选项语法是 <host-port>:<container-port>,其中 <host-port> 是你希望将容器端口映射到的主机上的端口号,而 <container-port> 是容器内部的端口号。
如果你想要在运行容器时不将某个端口暴露到主机上,可以将 <host-port> 部分留空或设置为 0,如下所示:
docker run -p 0:<container-port> <image-name>
这样会随机分配一个未使用的主机端口给容器内部的 <container-port>。
另外,你还可以使用 --publish-all 或 -P 选项来完全禁用端口映射,并将容器内部的所有端口都随机分配给主机上的端口。
请注意,即使端口没有被映射到主机上,容器内部的进程仍然可以通过容器内部的 IP 地址和端口访问。
很遗憾之前起的时候没有这么弄,现在该怎么做呢?
怎么设置docker监听的端口外网访问不了?
cat /etc/docker/damon.json
{
"graph":"/docker_images/docker"
"iptables":false
}
在这个问价中添加:“iptables”:false字段,添加后重启一下docker服务
问题:没有nmap就安装一下
nmap IP
starting Nmap 7.01 ( https://nmap.org ) at 2023-07-26 15:47 CsT
Nmapscan report for IP
Hostis up(0. 043s atency)Not shown:945 filtered ports
PORT STATE SERVICE
19/tcp open chargen
80/tcp open http
981/tcp open unknown
.
.
.
.
这样会有很多端口被暴露出来了,不安全,所以做一下限制。
添加后的扫描
nmap IP
Starting Nmap 7.92 ( https://nmap.org ) at 2023-07-26 07:58 UTC
Nmap scan report for IP
Host is up (0.00028s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT STATE SERVICE
80/tcp open http
443/tcp closed https
9200/tcp open wap-wsp
Nmap done: 1 IP address (1 host up) scanned in 10.01 seconds