macos – 如何在Mac容器中SSH到Docker

weixin_38102396 2019-09-12 12:16:31
参见英文答案 > docker: SSH access directly into container                                    4个我正在运行Docker for Mac(版本1.12.0-rc2-beta16(版本:9493)). 我从本地存储库中提取了一个图像,并使用“docker run -d”创建了一个容器.使用’docker ps’我获得’CONTAINER ID’,然后使用’docker inspect< CONTAINER_ID> | grep IPA’获取正在运行的容器的IP地址. 我现在想要使用SSH连接到容器’ssh root @< IP address>‘但该命令给出以下错误:’操作超时’. 进一步调查显示我无法ping< IP地址> – > ‘请求icmp_seq 0的超时’ 如何使用SSH连接到容器?什么是正确的命令? 更新:这不是重复(如上所述).以“您描述的方案”开头的条目是正确的解决方案.
...全文
112 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38109453 2019-09-12
  • 打赏
  • 举报
回复
您描述的场景是在“普通”Docker上使用的方法. 由于Mac上的Docker是专门为Mac创建的,因此它已经过调整以使其更易于使用.因此,在Mac上无法以这种方式使用容器的IP地址. 文档Getting Started with Docker for Mac指出: Previous beta releases used docker as the hostname to build the URL. From this release forward, ports are exposed on the private IP addresses of the VM and forwarded to localhost with no other host name set. See also, Release Notes for Beta 9. 因此,SSH到容器的正确方法是使用端口映射到SSH端口在Docker for Mac上将其旋转(22).例如 docker run -d -p 2022:22 <Image Name> 并且使用此命令启动SSH连接(N.B.它在指定的端口上使用’localhost’,而不必确定和使用容器的IP地址): ssh -p 2022 root@localhost 注:不可能简单地将端口22映射到自身,即’-p 22:22′,因为这会导致以下错误(至少对我来说是这样的!): docker: Error response from daemon: driver failed programming external connectivity on endpoint pensive_wilson (2e832b82fc67d3e48864975c6eb02f6c099e34eee64b29634cfde286c41e00a7): Error starting userland proxy: Failed to bind: EADDRINUSE.

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧