我对Docker主机的“含义”以及它与我的系统有何不同感到困惑。
我做了以下事情,
docker run jenkins
/* in a new tab */
docker ps // to get the container id
docker inspect {container-id} // to get the IP
据我了解,我可以连接到容器IP的唯一方法是在docker host
内部(如果没有端口映射的话)-那么如何连接到主机?
我知道我可以bash
进入容器并从curl
获得inspect
的IP,但这与连接到docker host
的方式不同,是吗?
答案 0 :(得分:2)
您在这里使用术语“ docker host”的方式听起来像您在使用术语来指代容器本身。 (您可能还指的是运行容器的物理机器。)
您可以将容器看作是一个非常轻量级的VM,它具有自己的文件系统,网络,可能还有CPU和RAM资源等。因此,如果不配置网络,容器将是隔离的。出于种种原因,这个比喻并不完美,但与发生的事情非常接近。
采用另一种方式,如果没有port mapping(或“主机网络”,请参阅this page,以获取有关docker网络的更多详细信息),则可以发现,只能访问容器内的网络,除非您映射端口(或者可能在连接到同一bridge network的不同容器内)。
在这种情况下,最好只映射端口,以便可以访问容器内运行的服务。