gpt4 book ai didi

macos - 禁止来自 Docker for Mac 上的 Docker 容器的导出

转载 作者:行者123 更新时间:2023-12-02 18:15:10 25 4
gpt4 key购买 nike

我想禁用 docker 容器向外界发起的所有传出连接。我可以在 linux 中通过向 linux 中的 FORWARD 链添加规则来做到这一点。如何在 Docker for Mac 中执行此操作?

我发现 Docker for Mac 使用 xhyve vm,这就是 docker0 接口(interface)所在的地方。这连接到主机中的哪个接口(interface)?我在 Mac 上使用 nettop,我看到 Docker 使用我的 en0 无线接口(interface)。但是,我不确定 Docker 和 xhyve 是否使用相同的界面。

编辑:添加了 docker-for-windows 标签,因为它们可能有类似的解决方案(希望)

编辑 2: Docker for Mac 发生了变化,因此接受的解决方案发生了一些变化

最佳答案

docker

$ docker run --net=host --privileged -ti alpine sh
# apk update && apk add iptables
# iptables -vnL

这和规则可以变成 Dockerfile并使用 -- restart 运行选项。我认为 on-failure Docker for Mac 启动时可能会重新应用规则。

虚拟机

要访问 linux VM:
mac$ brew install screen
mac$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

自从搬到 linuxkit ,这不是一般的 linux 主机,一切都是容器:
linuxkit:~# ctr -n services.linuxkit tasks ls
TASK PID STATUS
acpid 925 RUNNING
diagnose 967 RUNNING
host-timesync-daemon 1116 RUNNING
ntpd 1248 RUNNING
vpnkit-forwarder 1350 RUNNING
docker-ce 1011 RUNNING
kubelet 1198 RUNNING
trim-after-delete 1303 RUNNING
vsudd 1398 RUNNING

使用 runc搬入 docker-ce (或 docker )命名空间
linuxkit:~# runc --root /run/containerd/runc/default exec -t docker-ce /bin/sh
docker-ce # iptables -vnL

请注意,重新启动 Docker for Mac 后,规则将消失。我还没有找到持久系统更改的秘诀。

使用 ctrl-a 然后 d 退出屏幕 session ,否则您将破坏终端。

操作系统

对于简单但欧元的选项,请使用 Little Snitch并阻止来自 com.docker.supervisor via vpnkit 的 OSX 上的出站连接.

关于macos - 禁止来自 Docker for Mac 上的 Docker 容器的导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49419092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com