各位,今天我們將學習如何在docker
之中執行gui程式。我們可以輕易地在 docker容器中執行大多數gui程式且不出錯。docker是乙個開源專案,提供了乙個打包、分發和執行任意程式的輕量級容器的開放平台。它沒有語言 支援、框架或者打包系統的限制,並可以執行在任何地方、任何時候,從小型的家用電腦到高階的伺服器都可以執行。這讓人們可以打包不同的包用於部署和擴充套件網 絡應用,資料庫
和後端服務而不必依賴於特定的棧或者提供商。
下面是我們該如何在docker容器中執行gui程式的簡單步驟。本教程中,我們會用firefox作為例子。
在開始前,我們首先得確保在linux
主機中已經安裝了docker。這裡,我執行的是centos
7 主機,我們將執行yum管理器和下面的命令來安裝docker。
# yum install docker
# systemctl restart docker.service現在,docker守護程序已經在執行中了,我們現在準備建立自己的firefox docker容器。我們要建立乙個dockerfile,在其中我們要輸入需要的配置來建立乙個可以工作的firefox容器。為了執行 docker 映象我們需要使用最新版本的centos。要建立 docker 映象,我們需要用文字編輯器建立乙個名為dockerfile的檔案。
# nano dockerfile接著,在dockerfile中新增下面的行並儲存。
#!/bin/bash注意:在第四行的配置中,用你自己的使用者和組id來替換0。 我們可以用下面的命令在shell或者終端中得到uid和gid。from centos:7
run yum install
-y firefox
# 用你自己的 uid /gid 替換下面的0
run
export
uid=
0gid=0
run mkdir -p
/home
/developer
run echo
"developer:x:$:$:developer,,,:/home/developer:/bin/bash"
>>
/etc/
passwd
run echo
"developer:x:$:"
>>
/etc/
group
run echo
"developer all=(all) nopasswd: all"
>>
/etc/
sudoers
run
chmod
0440
/etc
/sudoers
run
chown$:
$-r /
home
/developer
user developer
env home
/home
/developer
cmd
/usr
/bin
/firefox
# id $user
下面我們就要根據上面的dockerfile構建乙個容器。它會安裝firefox瀏覽器和它需要的包。它接著會設定使用者許可權並讓它可以工作。這裡映象名是firefox,你可以根據你的需要命名。
# docker build --rm -t firefox .現在,如果一切順利,我們現在可以在執行在centos 7映象中的docker容器裡面執行我們的gui程式也就是firefox瀏覽器了。
# docker run -ti --rm -e display=$display -v /tmp/.x11-unix:/tmp/.x11-unix firefox在docker容器中執行gui程式是一次很棒的體驗,它對你的主機檔案系統沒有任何的傷害。它完全依賴你的docker容器。本教程中,我嘗試了centos 7 docker中的firefox。我們可以用這個技術嘗試更多的gui程式。
譯文:
如何在Docker容器中執行GUI程式
各位,今天我們將學習如何在docker之中執行gui程式。我們可以輕易地在docker容器中執行大多數gui程式且不出錯。docker是乙個開源專案,提供了乙個打包 分發和執行任意程式的輕量級容器的開放平台。它沒有語言支援 框架或者打包系統的限制,並可以執行在任何地方 任何時候,從小型的家用電腦到高...
如何在docker中執行PostgreSQL例項
docker pull postgres 10.10 資料持久化 建立本地卷 docker volume create postgredb 啟動時,需要將剛上個步驟建立的卷 postgredb 掛載到容器的 var lib postgresql data 目錄 docker run it v pos...
如何在docker容器中啟jupyter
docker h 0.0.0.0 run it rm p 18888 8888 v pwd dump data root dump data harbor.atompai.com nitrogen xdock v1 bin bash設定密碼 pip install jupyter啟動容器 docke...