访问Docker主机上的服务

如果我启动一个docker集装箱,如果我使用主机的LAN IP,我可以出于某种原因访问docker主机的服务,例如:

docker run -it ubuntu sh -c "apt-get update && apt-get install -y netcat && nc -z 192.168.196.135 3449" 

但是,我怎么知道哪个IP访问主机呢? 运行ifconfig不显示192.x范围内的任何networking。 如果主机与局域网断开,该怎么办?

你可以添加一个条目到你的容器的/etc/hosts

 docker run --add-host="dockerhost:192.168.196.135" -it ubuntu sh -c "apt-get update && apt-get install -y netcat && nc -z dockerhost 3449" 

你也可以使用这个docker发现代理

如果你需要更复杂的东西,那么你需要一个像zookeeper这样的服务发现系统。