将 docker 容器绑定到 OSX 上的 IP

Bind docker container to IP on OSX

在 Ubuntu 我做了这样的事情

sudo ip addr add 192.168.33.30/21 dev eth0
docker run -p 192.168.33.30:80:80 -d foo/bar /sbin/my_init

然后我可以在 http://192.168.33.30 打开浏览器。

我如何在 OSX 上完成同样的事情?

(OSX 没有 'ip addr' 和这个 boot2docker-vm 东西)

我发现这个解决方案对我有用:

# Register IP address
sudo ifconfig lo0 add 192.168.33.30

# Run docker container with port 80 assigned to random free port
docker run -p 80 --name boing -d foo/bar /sbin/my_init

# Start SSH tunnel for port 80 (http)
TUNNEL_ADDR_PORT_80=$(docker port boing | grep 80 | awk '{print }')
sudo ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no \
        -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -i $HOME/.ssh/id_boot2docker \
        -nNT -f -L 192.168.33.30:80:$TUNNEL_ADDR_PORT_80 \
        docker@$(boot2docker ip 2>/dev/null) &