dil*_*van 4 linux hyper-v virtual-machine docker windows-10
我想在我的 Windows 10 机器(i5、8GB、240 GB ssd、2&1 笔记本)中有一个 Linux 开发环境(Java、Intellij Idea、Clojure 和 ClojureScript)。我可以用:
我想尝试第二种选择。在桌面上的 Docker Containers 中,作者使用以下命令运行 Chrome 浏览器 docker:
$ docker run -it \
--net host \ # may as well YOLO
--cpuset-cpus 0 \ # control the cpu
--memory 512mb \ # max memory it can use
-v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket
-e DISPLAY=unix$DISPLAY \ # pass the display
-v $HOME/Downloads:/root/Downloads \ # optional, but nice
-v $HOME/.config/google-chrome/:/data \ # if you want to save state
--device /dev/snd \ # so we have sound
--name chrome \
jess/chrome
Run Code Online (Sandbox Code Playgroud)
他使用的 Dockerfile 可以适应运行其他桌面应用程序,但上面的命令在 Windows 中不起作用。我有一台 XWindows 服务器正在运行(在 Windows 10 中),但我想知道如何更改-e DISPLAY=unix$DISPLAY和--device /dev/snd选项。如何更改此命令才能工作?
Docker 使用 Hyper-V Linux VM 在 Windows 中运行。它会比 Hyper-V(或其他 VM 系统)中的完整 Linux VM 更快,还是模块化是 docker 在这种情况下的唯一优势?
以下命令有效(我使用XcXsrv Xserver 允许来自任何来源的连接):
docker run -d --name firefox1 -e DISPLAY=your-machine-ip-address:0 jess/firefox
Run Code Online (Sandbox Code Playgroud)
--name firefox1如果您不想命名 docker,则可以删除。电影工作正常,但没有声音。有人可以在这里帮忙吗?
其他 Xservers 也应该可以工作,只要确保您允许来自任何来源的连接(小心,这种设置可能是开放网络中的安全威胁)。
请记住,您的 Docker 容器和主机实际上是不同的机器。从 docker 容器使用 GUI 应用程序与在远程主机上运行 Linux GUI 应用程序并将其显示在本地 Windows 主机上完全相同。
当您的主机是 Linux 机器时,这非常简单。您的主机已经运行 X 服务器。docker容器可以将其X显示导出到主机并使用主机的X服务器来运行GUI应用程序。这就是你的 docker 命令的作用。
对于 Windows 主机,则不存在这种可能性,因为它不运行 X,因此无需稍作修改即可实现您想要的效果。
您可以选择使用某些第三方工具在 Windows 上运行 X 服务器,或者使用任何其他远程连接技术,例如 VNC 或 RDP。但既然您想要一个开发环境,我想您想要一个无缝的体验,而 VNC 或 RDP 窗口将无法工作。那么您应该在 Windows 上运行 X 服务器。
查看此答案,了解实现此目标的可能方法。另请阅读该问题的其他答案。将主机 X 服务器用于 docker 容器应用程序可能会存在安全隐患。由于您使用的是主机 X 服务器,因此应用程序不再是真正的沙箱。
| 归档时间: |
|
| 查看次数: |
6274 次 |
| 最近记录: |