1. 程式人生 > >Docker執行圖形應用程式

Docker執行圖形應用程式

今天要用Docker在容器裡執行一個帶圖形介面的應用程式,所有簡單試了一下,還是比較容易實現,下面是我整理的步驟。

Dockerfile

首先建立一個Dockerfile,內容如下:

FROM centos:7

RUN yum install -y sudo tar wget openssh-server openssh-clients openssl openssl-devel epel-release
RUN yum install -y gedit

#RUN yum groupinstall -y "GNOME Desktop"
#RUN yum groupinstall -y
"Development and Creative Workstation" RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config \ && echo 'root:admin' | chpasswd \ && useradd -u 1000 admin \ && echo "admin:admin" | chpasswd \ && echo "admin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers \
&& ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \ && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \ && mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]

主要就是安裝了一些第三方包,這裡是使用的gedit來做的測試,如果要使用別的程式,可以適當的修改一下。或者如果網速很快的話,可以直接安裝”GNOME Desktop”(這個會安裝很多包,懶人專用)。

另外就是最後啟動了一個sshd服務,目的是為了我測試方便,可以換成自己封裝的應用程式。

建立映象

$ sudo docker build --rm -t docker-gui .

設定xhost

為了能讓容器裡的應用程式投送到當前的視窗上,需要執行下面命令來允許任意的客戶端訪問。

$ xhost +
access control disabled, clients can connect from any host

執行應用程式

sudo docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix docker-gui gedit

相關推薦

Docker執行圖形應用程式

今天要用Docker在容器裡執行一個帶圖形介面的應用程式,所有簡單試了一下,還是比較容易實現,下面是我整理的步驟。 Dockerfile 首先建立一個Dockerfile,內容如下: FROM centos:7 RUN yum install -

通過docker run 命令來在容器內執行一個應用程式 輸出Hello world

Docker “Hello World!” Docker 允許你在容器內執行應用程式, 使用 docker run 命令來在容器內執行一個應用程式。 輸出Hello world! [[email protected] ~]# docker run ce

雙擊執行Qt應用程式報缺庫不一定都是打包的問題,有可能是程式本身程式碼邏輯的問題

打包釋出開發完成的QT應用程式到別的無Qt開發環境的機器上雙擊開啟執行,結果報瞭如下提示: 按字面意思一直以為是缺庫或庫不對應的問題,折騰一番後實在找不出原因就去逐看程式碼,結果發現還真是程式碼問題導致的。 我用的是vs+qt的開發環境,要看應用程式都用到哪些庫了可以在vs中點選執行,

一段 VB 程式碼自動執行圖形介面程式 傳送按鍵指令

用於ETL流程中, 有不支援命令列, 只能GUI互動的程式要實現自動化呼叫 可以參考下面這段VB. 啟動了程式, 還在5秒後自動按了一下回車鍵. Dim Shell Set Shell=WScript.CreateObject("WScript.Shell"

如何安裝和使用Wine,以便在Linux上執行Windows應用程式

如何安裝和使用Wine,以便在Linux上執行Windows應用程式  我來答 分享 舉報 瀏覽 2150 次 1個回答 #不想上班# 今天上班,你最想說點啥? 最佳答案 cincoutvc 來自電腦網路類芝麻團 2017-10-19 在Linux上執行Windows程式需要安裝Wine,

ubuntu 12.04設定開機啟動圖形應用程式,替換預設圖形桌面

想把ubuntu 12.04的開機設定模式改為預設為命令方式,搜尋半天,現將成功的方法轉出,並感謝作者。 一、前言 無論你想要在ubuntu 12.04(11.10適用)開機啟動圖形程式,或者非圖形程式,相信這篇文章能幫上大忙。 我將根據我的需求講解我的做法,並解釋

Fedora系統管理指南:第1章 啟動圖形應用程式

第一部分 系統基本配置 此部分內容包括基本的系統管理操作,比如鍵盤佈局、日期和時間設定,使用者和使用者組的管理,許可權的管理。 第1章 啟動圖形應用程式 Fedora同時提供了系統配置的圖形介面和命令列工具兩種方式。本章將介紹啟動圖形應用程式的各種方法。 1.1 從命令列啟動圖形應用

VC中怎麼執行一個應用程式,並取得應用程式的返回值

我沒有想到怎樣去檢查掛掉的程式,在實際應用中我是採用估算一個最大執行時間,如果超過此時間,即強行終止程式。因為要取得子程序執行結束的返回值,所以要用上面的方法。如果不要求取得返回值,把:ShellExecuteEx(&ShExecInfo);以下的程式碼去掉就是了,主程序依然可以繼續下向執行。如果不考

docker——釋出一個應用程式

docker——釋出一個java應用程式 一、安裝docker 使用docker之前,需要在物理機上安裝docker。安裝過程可參考docker官網,安裝完成之後,執行docker。不同的作業系統,docker的安裝和啟動不同。 二、待發布的jav

docker執行php網站程式

有一個之前的php網站程式需要遷移到K8S,簡單調研了下。 基礎映象 官方提供了諸如php:7.1-apache的基礎映象,但是確認必要的擴充套件,例如gd,當然官方提供了docker-php-ext-install命令,可以用來安裝需要的擴充套件。但是每次構建都重新安裝非常費時,最好的辦法是構建一個包含

“adb不是內部或外部命令,也不是可執行應用程式”錯誤原因及解決方法

用SQLite時,可能會出現這樣的錯誤。 原因可能是環境變數PATH沒有配置或配置不正確。應該把adb.exe 所在目錄加入到PATH環境變數。例如:C:\Program Files\android-sdk-windows\tools   開啟cmd,進入adb.exe 所

shell 指令碼執行執行應用程式

懂指令碼的人可以略過此片文章: Mac電腦上用指令碼啟動某個應用程式: 其他系統也是大同小異: 1、建立以 .sh 結尾的檔案 2、裡面的內容: #!/bin/sh cd /Applications/finalshelldata/ ./start

執行應用程式的當前工作目錄和所在的目錄的區別

     週末和一個做linux平臺開發的朋友討論了下如何獲取當前執行程式所在的目錄的問題。首先我在這裡簡單的介紹下執行的應用程式的當前工作目錄和執行應用程式所在的目錄的區別?      當前工作目錄 (Current Working Directory) 一般來說,每個程

C#構建多執行應用程式(4) —— 併發問題

在構建多執行緒的應用程式時,我們需要找到一種方式來控制多個執行緒對共享資源的同步訪問。System.Threading名稱空間提供了一些以同步為中心的型別。C#程式語言也提供了一個特別的關鍵字,它能在

Java Debug Interface(JDI)除錯多執行應用程式

        專案中遇到500多個執行緒併發執行,並將執行緒執行所生成的資料插入MySql資料庫,按設想,500個執行緒,資料庫中應有序號連續的500條記錄。然而,鬱悶的是資料庫中的記錄在第450條左右就開始不連續,部分記錄缺失。500多個執行緒幾乎是獨立的,它們之間存在

python執行Windows應用程式

轉自:http://my.oschina.net/mutour/blog/33042 10.4 執行其他程式 在Python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的程式碼。為了

如何在linux嵌入式開發板上開機自動執行使用者應用程式

開機後自動執行使用者的應用程式或啟動系統服務的命令儲存在開發板根檔案系統的/usr/etc/rc.local檔案中。有的開發板開機後自動執行圖形介面程式,需要按住ctrl+c讓開發板進入到linux的SHELL提示符介面。其實可通過註釋掉rc.local檔案中呼叫圖形介面的

故障排除:無法啟動、訪問或連線到 Azure 虛擬機器上執行應用程式

有多種原因可導致無法啟用或連線到在 Azure 虛擬機器 (VM) 上執行的應用程式。原因包括應用程式未在預期埠上執行或偵聽、偵聽埠受到阻止,或網路規則未將流量正確傳遞到應用程式。本文說明有條理地找到問題並更正問題。 如果在使用 RDP 或 SSH 連線到 VM 時發生

利用Docker部署SpringBoot應用程式

我們已經安裝完成了Java環境,那麼本篇就開始怎麼部署一個SpringBoot專案到Docker中,Docker實現Spri

【Azure DevOps系列】Azure DevOps使用Docker將.NET應用程式部署在雲伺服器

## Docker持續整合 本章我們要實現的是通過我們往程式碼倉庫push程式碼後,我們將每次的push進行一次docker自動化打包釋出到docker hub中,釋出到之後我將進行部署環節,我們將通過ssh方式將我們的.NET應用程式pull並run到我們的雲伺服器上。 Dockerfile 如下所示: