docker - 如何连接到docker主机?
问题描述
我对 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
我从中获得的 IP inspect
,但这与连接到 不同docker host
,是吗?
解决方案
您在这里使用术语“docker host”的方式听起来像是您使用该术语来指代容器本身。(您可能还指的是运行容器的物理机器)。
您可以将容器基本上视为一个非常轻量级的虚拟机——它有自己的文件系统、网络,可能还有 CPU 和 RAM 资源等。因此,如果不配置网络,容器将被隔离。由于种种原因,这个类比并不完美,但它非常接近正在发生的事情。
换句话说,如果没有端口映射(或“主机网络”,有关 docker 网络的更多详细信息,请参阅此页面),如您所见,您只能访问容器内的网络,除非您映射端口(或者,也许是在连接到同一个桥接网络的不同容器内)。
在这种情况下,您可能最好映射端口,以便您可以访问在容器内运行的服务。
推荐阅读
- ios - 组织许可
- python - 为什么在pygame中文本显示2秒
- javascript - 焦点边框颜色变化
- matlab - 在 MATLAB App Designer 中正确使用 uiwait 和 uiresume
- html - 如何在 Django 中编辑布尔字段
- vba - 打开一个新数据库并关闭旧数据库
- php - 如何为 Phinx 添加列字符变化(3)[]
- python - 有没有办法在给定的 pytorch 或 tensorflow 模型的推理过程中获得总的 Flops?
- android - Kotlin - Retrofit - rxjava3 - setImage 使用数据绑定 [已解决]
- python - 如何使用 python 从列表中读取数据并将特定值索引到 Elasticsearch 中?