如何在容器中執行ker命令,如何在容器中執行docker命令

2022-01-31 02:30:28 字數 5405 閱讀 3346

1樓:

我們可以輕易地在docker容器中執行大多數gui程式且不出錯。docker是乙個開源專案,提供了乙個打包、分發和執行任意程式的輕量級容器

的開放平台。它沒有語言支援、框架或者打包系統的限制,並可以執行在任何地方、任何時候,從小型的家用電腦到高階的伺服器都可以執行。這讓人們可以打包不

同的包用於部署和擴充套件網路應用,資料庫和後端服務而不必依賴於特定的棧或者提供商。

下面是我們該如何在docker容器中執行gui程式的簡單步驟。本教程中,我們會用firefox作為例子。

1. 安裝 docker

在開始前,我們首先得確保在linux主機中已經安裝了docker。這裡,我執行的是centos 7 主機,我們將執行yum管理器和下面的命令來安裝docker。

# yum install docker

# systemctl restart docker.service

2. 建立 dockerfile

現在,docker守護程序已經在執行中了,我們現在準備建立自己的firefox

docker容器。我們要建立乙個dockerfile,在其中我們要輸入需要的配置來建立乙個可以工作的firefox容器。為了執行 docker

映象我們需要使用最新版本的centos。要建立 docker 映象,我們需要用文字編輯器建立乙個名為dockerfile的檔案。

# nano dockerfile

接著,在dockerfile中新增下面的行並儲存。

#!/bin/bash

from centos:7

run yum install -y firefox

# 用你自己的 uid /gid 替換下面的0

run export uid=0 gid=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來替換0。 我們可以用下面的命令在shell或者終端中得到uid和gid。

# id $user

3. 構造docker容器

下面我們就要根據上面的dockerfile構建乙個容器。它會安裝firefox瀏覽器和它需要的包。它接著會設定使用者許可權並讓它可以工作。

這裡映象名是firefox,你可以根據你的需要命名。

# docker build --rm -t firefox .

4. 執行docker容器

現在,如果一切順利,我們現在可以在執行在centos 7映象中的docker容器裡面執行我們的gui程式也就是firefox瀏覽器了。

# docker run -ti --rm -e display=$display -v /tmp/.x11-unix:/tmp/.x11-unix firefox

總結在docker容器中執行gui程式是一次很棒的體驗,它對你的主機檔案系統沒有任何的傷害。它完全依賴你的docker容器。

2樓:3條腿的小**

互動式執行docker容器

[root@gage ~]#docker run -t -i ubuntu:14.04 /bin/bash

root@89471dce598b:/# ls

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

root@89471dce598b:/# pwd

/root@89471dce598b:/# exit

exit

後台執行乙個容器讓其輸出hello world

[root@gage ~]# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

顯示正在執行的docker容器

[root@gage ~]# docker ps

container

id image command created

status ports names

4bc1b2f2257e

ubuntu:14.04 "/bin/sh -c 'while tr" 27 seconds ago up 26

seconds insane_bhabha

使用docker logs命令檢視容器標準輸出

[root@gage ~]# docker logs insane_bhabha

hello world

hello world

hello world

hello world

使用docker stop 停止容器

[root@gage ~]# docker stop insane_bhabha

insane_bhabha

[root@gage ~]# docker ps

container id image command created status ports names

如何檢視docker 裡某個容器的的啟動命令

3樓:我愛吃糖豆豆

1,在容器外部,物理機上,可以用docker inspect檢視或者,docker inspect container。

2,如果在容器內部。可以用 ps -fe 檢視。其中1號程序就是啟動命令。

3,docker會在隔離的容器中執行程序。當執行docker run命令時,docker會啟動乙個程序,並為這個程序分配其獨佔的檔案系統、網路資源和以此程序為根程序的程序組。在容器啟動時,映象可能已經定義了要執行的二進位制檔案、暴露的網路埠等,但是使用者可以通過docker run命令重新定義(譯者注:

docker run可以控制乙個容器執行時的行為,它可以覆蓋docker build在構建映象時的一些預設配置),這也是為什麼run命令相比於其它命令有如此多的引數的原因。

4,命令格式

5,最基本的docker run命令的格式如下:

$ sudo docker run [options] image[:tag] [command] [arg...]

設定執行方式:

決定容器的執行方式,前台執行還是後台執行;

設定containerid;

設定網路引數;

設定容器的cpu和記憶體引數;

設定許可權和lxc引數;

設定映象的預設資源,也就是說使用者可以使用該命令來覆蓋在映象構建時的一些預設配置。

7,docker run [options]可以讓使用者完全控制容器的生命週期,並允許使用者覆蓋執行docker build時所設定的引數,甚至也可以修改本身由docker所控制的核心級引數。

4樓:琅玥天敏

你好,操作命令如下:

docker會在隔離的容器中執行程序。當執行docker run命令時,docker會啟動乙個程序,並為這個程序分配其獨佔的檔案系統、網路資源和以此程序為根程序的程序組。在容器啟動時,映象可能已經定義了要執行的二進位制檔案、暴露的網路埠等,但是使用者可以通過docker run命令重新定義(譯者注:

docker run可以控制乙個容器執行時的行為,它可以覆蓋docker build在構建映象時的一些預設配置),這也是為什麼run命令相比於其它命令有如此多的引數的原因。

命令格式

最基本的docker run命令的格式如下:

$ sudo docker run [options] image[:tag] [command] [arg...]

如果需要檢視[options]的詳細使用說明,請參考docker關於options的章節。這裡僅簡要介紹run所使用到的引數。options總起來說可以分為兩類:

設定執行方式:

決定容器的執行方式,前台執行還是後台執行;

設定containerid;

設定網路引數;

設定容器的cpu和記憶體引數;

- 設定許可權和lxc引數;

設定映象的預設資源,也就是說使用者可以使用該命令來覆蓋在映象構建時的一些預設配置。

docker run [options]可以讓使用者完全控制容器的生命週期,並允許使用者覆蓋執行docker build時所設定的引數,甚至也可以修改本身由docker所控制的核心級引數。

operator exclusive options

當執行docker run時可以設定以下引數:

detached vs foreground

detached (-d)

- foreground

container identification

name (--name)

- pid equivalent

ipc setting

network settings

clean up (--rm)

runtime constraints on cpu and memory

runtime privilege, linux capabilities, and lxc configuration

接下來我們依次進行介紹。

detached vs foreground

當我們啟動乙個容器時,首先需要確定這個容器是執行在前台還是執行在後台。

-d=false: detached mode: run container in the background, print new container id

detached (-d)

如果在docker run後面追加-d=true或者-d,那麼容器將會執行在後台模式。此時所有i/o資料只能通過網路資源或者共享卷組來進行互動。因為容器不再監聽你執行docker run的這個終端命令列視窗。

但你可以通過執行docker attach來重新附著到該容器的回話中。需要注意的是,容器執行在後台模式下,是不能使用--rm選項的。

如何在xampp中執行php檔案

安裝xampp啟動baiapache 和mysql後,服務du器就執行了。在瀏覽器中輸zhi 入localhost就可以dao看到xampp的歡迎介面儲存在xampp的htdocs資料夾下,比如test.php然後在瀏覽器中輸入http localhost test.php就可以看到hello wo...

如何用Visual C 執行dos命令

system const char 如何在c語言 c 裡面呼叫 dos命令 首先,你得新增標頭檔案 include 然後,呼叫dos命令用函式system 例如 system pause 使程式暫停執行的dos命令。使用system函式即可。1 system函式 原型 int system cons...

如何在「執行」中ping ip,怎麼用cmd ping自己的IP

開始 執行,在 執行 中輸入 cmd 開啟命令提示符視窗,在命令提示符視窗中ping ip.執行 cmd ping ip位址 t 回車就可以,坪通就顯示值為64為穩定,沒顯示就表示有問題,可檢查路由器入手.執行 輸入cmd,回車,在新開的視窗內執行ping ip命令。開始 執行 輸入cmd 確定,在...