如何抽取主机从Docker容器内的剪贴板?

我有Vim安装在docker集装箱内。

我想抽出一些文本,并以某种方式神奇地使其在我的主机(macOS)剪贴板上可用。

这甚至可能吗?

UPDATE

所以要澄清,这是我的完整用例…

  • docker run ...一些容器与Vim烤成的形象
  • 默认的CMD将把我放到bash shell中
  • 我从我的主机(macOS)挂载一个应用程序目录到容器中
  • 从容器中运行vim,写一些代码
  • 从vim我想要抽出一些文本,并在两个:
    • docker系统剪贴板(所以我可以将它粘贴到容器shell,如果我想要的话)
    • 主机(macOS)系统剪贴板(所以我可以将其粘贴到其他主机程序;文本编辑或电子邮件,无论)

现在我不确定这是如何工作的,主机(macOS)必须使用docker生态系统提供的虚拟机才能运行docker(因为macOS不是基于Linux的系统,因此可以没有中间虚拟机本地运行docker容器)。

因此,我不确定是否将内容导入到docker系统剪贴板中的技巧将会过滤回虚拟机并进入实际的(macOS)主机。

X11

我见过有人build议使用X11并将它的套接字文件装入docker容器,然后使用xclip(或xsel)。 我试过这个,但是无法让Vim进入适当的xclip寄存器来接收被抽出的内容。 所以后来我不确定是否我的尝试设置和安装x11工作:

  • brew install Caskroom/cask/xquartz
  • open -a XQuartz
  • 作为docker运行的一部分运行-v /tmp/.X11-unix:/tmp/.X11-unix
  • 从容器内的apt-get install -y xclip
  • 从容器内的vim "*yiw (select"*select寄存器,然后yiw抽出光标下的当前单词)<但是看起来容器里面的vim 8没有这样的寄存器可用来插入? 我已经安装到容器中的vimrc已经set clipboard+=unnamed (这是我以前用vim来插入到macOS系统剪贴板的东西)

注:如果我试图直接使用xclip (只是为了看看它是如何工作的),我试过的大部分导致Error: Can't open display: (null)

这绝对是。

看看https://github.com/wincent/clipper

这是一个让您使用netcat写入剪贴板的服务。

您只需要从docker容器中访问您的机器的本地主机 。