码头工人
$ 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-then退出屏幕会话,a否则d您将终止终端。
操作系统
对于简单但简单的选项,请使用Little Snitch并阻止 OSX 上的出站连接com.docker.supervisor via vpnkit
。