首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接到远程运行Apache钻取的docker容器?

如何连接到远程运行Apache钻取的docker容器?
EN

Stack Overflow用户
提问于 2018-11-01 23:26:38
回答 1查看 449关注 0票数 0

机器A上,我运行

代码语言:javascript
复制
 $ docker run -i --name drill-1.14.0 -p 8047:8047 
   --detach -t drill/apache-drill:1.14.0 /bin/bash
   <displays container ID>

 $ docker exec -it drill-1.14.0 bash
   <connects to container>

 $ /opt/drill/bin/drill-localhost  

我的问题是,我怎么做,从机器B运行

代码语言:javascript
复制
docker exec -it drill-1.14.0 bash

机器A上-我在帮助页中查找过,但是没有任何东西被点击。

这两台机器都是Windows (10 x64)机器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-01 23:45:26

您需要从机器B安全地连接到机器A,然后在那里运行相关的Docker命令。这附近没有安全的捷径。

记住,能够运行任何Docker命令都意味着对系统的根级访问(您可以通过docker run -u root -v /:/host ...查看或更改您想要的任何主机系统文件)。由于这一点,通常可以控制到底谁可以运行Docker命令。打开一个联网的Docker套接字是可能的,但非常危险:现在,任何能够通过网络访问该套接字的人都可以更改主机的密码和sudoers文件,以允许一个无密码的根等效的ssh登录。(谷歌新闻(Google )一、两周前给我写了一篇文章,内容是攻击者正在寻找开放的Docker网络套接字,并利用这些套接字将机器变成加密货币矿工。)

如果您正在构建一个服务,并且希望用户与它进行远程交互,那么您可能需要将任何可用的接口作为网络请求,而不是运行本地shell命令。例如,基于have的/admin路径集通常需要单独的密码身份验证或其他不同的权限。

如果您试图通过服务的本地配置文件来管理服务,通常最好的方法是将配置文件存储在主机系统上,使用docker run -v将它们注入容器,当您需要更改它们时,docker stop; docker rm; docker run容器将获得一个新的配置文件的新副本。

如果您正在打包某个应用程序,但与其交互的主要方式是通过CLI工具和本地文件,那么请考虑是否确实希望使用一个工具,该工具将应用程序的文件系统与主机系统隔离开来,并需要根级访问才能与其交互。在您选择的脚本语言中安装半隔离工具的工具已经相当成熟,编译语言也非常成熟;在您的主机系统上安装软件没有什么问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53110750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档