我编写了一些 Java 桌面应用程序,并认为我可以使用 Docker 运行它们来了解容器。
我将 Java 应用程序放入带有 ubuntu 映像的 Docker 容器中。就在那时,我意识到我需要让 Docker 能够访问我的 DISPLAY 变量,以便 GUI 能够工作/访问我的计算机的 I/O。连接后,我可以运行 docker 容器并在计算机屏幕上看到 GUI 弹出。
这就是我开始感到困惑的地方。如果我在 VirtualBox 中运行桌面 GUI,我可以在虚拟机中看到 GUI;它在虚拟计算机上。然后有一些智能设备可以将虚拟机 I/O 连接到本地计算机的 I/O。这对我来说很有意义。
但是 Docker 如何将 GUI 返回到我的实际计算机上呢?当我运行容器时,我可以在我的实际计算机上看到 GUI(而不是在像 virtualbox 这样的虚拟机中)。但是 GUI 本身如何在主机上呈现呢?当我与主机共享 I/O 时,Docker 是否有权将 GUI 文件发送回主机以显示 GUI?或者当我使用 ubuntu 映像创建容器时,我基本上创建了一个虚拟机吗?