如何抽取主机从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)
。