我在 Debian 上的单个主机上运行 docker。主机为我的家庭网络运行各种不同的服务,例如监控软件、家庭自动化、日志聚合等。
我一开始只将一个物理网络适配器连接到系统,并创建了一些容器。后来,我添加了辅助 NIC,其想法是在仅用于 ssh 访问 docker 主机eth1时移动所有 docker 容器。eth0
版本信息
20.10.04.19.0-13-amd64241-7~deb10u5 amd64overlay2Docker 目前在 NIC 上发布所有容器,但我找不到一种干净简单的方法来限制仅公开服务eth1。这与我使用主机、桥接器还是自定义网络无关。
daemon.json- 设置“ip”选项。对我来说,这看起来是最明显的解决方案,但它似乎没有效果,在重新启动和服务重新启动后,两个网络接口上的服务仍然可用。我什至在引入“ip”选项后从头开始重新创建了一个容器,也没有效果。目前,配置看起来非常简单:{
"ip" : "192.168.1.10",
"graph": "/srv/docker"
}
Run Code Online (Sandbox Code Playgroud)
eth0在防火墙级别阻止访问,p22 除外。这会起作用,但对我来说感觉像是黑客。一定有一种(可能很简单)的方法可以将主机网络从 更改0.0.0.0为eth1的特定 IP 地址,但我一生都无法找到方法。
我至少可以部分回答我自己的问题。在 docker 中指定“ip”参数时daemon.json,只有新创建的容器才会遵循该设置,并且仅绑定到配置的 IP 地址。但是,重新创建现有容器是不够的,它仍然会绑定到两个 NIC。您确实必须删除任何行为不当的容器,包括它们的卷和配置,并从头开始。我还没有找到一种方法来改变绑定而不必这样做。
| 归档时间: |
|
| 查看次数: |
13108 次 |
| 最近记录: |