📜  如何在 Docker 中运行基于 GUI 的应用程序?

📅  最后修改于: 2022-05-13 01:57:29.724000             🧑  作者: Mango

如何在 Docker 中运行基于 GUI 的应用程序?

Docker 容器是一个隔离的应用程序平台,其中包含运行到从一个或多个映像构建的应用程序所需的一切。

Docker 是一个开源项目,它提供了一个开放平台,可以根据您的要求在容器内运行任意数量的应用程序,您还可以保存该环境以备将来使用,也可以作为轻量级容器的映像。

我们可以轻松运行最常见的 GUI 应用程序,而不会在 Docker 容器中遇到麻烦。要在 Docker 容器中运行 GUI 应用程序,只需遵循下面提供的几个非常简单的步骤。

执行:

按照以下步骤在 Docker 中运行 GUI 应用程序:

步骤1:安装并启动Docker并检查状态并重新启动服务。 Systemctl命令用于管理系统 服务。



systemctl start docker            // to start the docker service.
systemctl status docker           // to check the status .
systemctl restart docker          // to restart the service.

第 2 步:现在从 DockerHub 拉取一个镜像到基础 OS Rhel 并启动一个容器并在容器内安装 python3。

docker run -it — name os_name centos:latest         

运行docker容器,(-表示交互式终端, “os_name”你可以根据你的好记给你, “centos: latest”会给你最新版本的centos的centos容器。

yum install python3                             

在docker容器中安装python3可以选择任意版本的Python, yum用于安装、删除、查询软件包。

第 3 步:安装任何没有。容器内的 GUI 应用程序在这里我将安装firefoxjupytergedit

yum install firefox -y             // to install firefox 
pip3 install jupyter               // to install jupyter
yum install gedit -y               // to install gedit

第 4 步:现在从之前启动的容器创建一个镜像,然后启动这个新创建的镜像的容器(在 baseOS 内部)。

exit                                                // to exit from the container ,
                 
docker commit os_name image_name:version          // Now you are in base OS type the
                                                  // following given below command.

要从正在运行的容器中创建映像,“ os_name”是您要创建的自己的操作系统,因此请根据您给它命名, “ image_name”是您要创建的自己的操作系统的映像,因此这里也给出根据您和“版本”假设这是您的第一张图片,因此将版本设为 v1 或您想要提供的任何内容。 “ commit”命令用于从正在运行的容器中创建映像。

docker run -it --name container_name --env=”Display” -- net=host image_name:version    

要从您创建的 os 映像运行新的 docker 容器,您已经在其中安装了一些 GUI 应用程序和 env 显示它从其父级(基本 os)接收的环境,并按照您在上一个命令中提到的设置映像名称和版本。这是您的新 docker 容器,因此为此操作系统指定一个新名称。

第 5 步:现在您可以使用给定的命令进行检查:

firefox                            // to run firefox inside the docker
jupyter notebook                  // to run jupyter inside the docker
gedit                             // to run gedit inside the docker
exit                              // to exit from the container