你如何确定docker集装箱是在远程docker机上运行,​​还是在docker引擎本地运行?

为了将互联网带宽的担忧推到云计算机上,我在docker远程机器上运行我的docker集装箱。 当你的networking非常慢时,这种设置非常方便。 我的问题是,我不知道如何轻松确定一个容器的主机。

这是我如何确定它:

运行这个, docker run -d -p 8000:80 nginx并访问 – > localhost:8000 ; 如果它返回一个nginx默认页面,那么我知道它在本地运行docker容器。

如果我用docker-machine ipreplacelocalhost并获取nginx页面,那么我知道容器在远程系统上。

docker CLI是客户端/服务器体系结构的一半客户端( dockerd或以前版本中的dockerd docker daemon是另一半)。 当你使用docker-machine ,它正在更新环境variables,包括$DOCKER_HOST ,告诉$DOCKER_HOST连接到另一个主机。 默认是连接到本地主机上的套接字。 $DOCKER_HOST的值将覆盖该值,并且CLI标志$DOCKER_HOST docker -H ...覆盖这两者。

在意外主机上启动容器的最常见原因是当您忘记设置/取消设置$DOCKER_HOST