使docker容器只能从某个IP访问

Ser*_*ket 3 docker docker-compose docker-network

现在,当我将 docker 容器端口绑定到我的计算机上的端口时,可以通过属于我的计算机的每个 IP 地址访问它。

我知道这一点是因为我尝试使用 Docker 主机的静态 LAN IP 地址通过另一台计算机连接到该端口。

我想限制该特定容器只能由我的 docker 主机(127.0.0.1 或 localhost)访问。当我将 Web 服务器的 IP 更改为 localhost 时,我的 docker 主机将无法访问它(可能是因为这使其位于容器本地,而不是主机)。

如何使 docker 容器成为主机本地的?

Shm*_*uel 6

如果您像这样运行容器,则只能从以下位置访问它:127.0.0.1

docker run --rm -it -p 127.0.0.1:3333:80 httpd
Run Code Online (Sandbox Code Playgroud)

--rm:我用它来测试退出后删除容器。
-it: 交互式终端。
-p:端口映射,将主机上的3333映射到容器中的80,并限制仅从本地主机访问。

docker-compose 的等价物是:

services:
  db:
    ports:
      - "127.0.0.1:80:80"
Run Code Online (Sandbox Code Playgroud)