Docker如何進(jìn)入啟動(dòng)容器

本文介紹了Docker如何進(jìn)入啟動(dòng)容器,分享給大家,具體如下:

為江南等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及江南網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、江南網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

在使用-d參數(shù)時(shí),容器啟動(dòng)后會(huì)進(jìn)入后臺(tái),用戶無法看到容器中的信息,也無法進(jìn)行操作。

這個(gè)時(shí)候如果需要進(jìn)入容器進(jìn)行操作,有多種方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。

1、attach命令

attach命令是Docker自帶的命令,命令格式為:

docker attach [–detach-keys[=[]]] [–no-stdin] [–sig-proxy[=true]] Container

支持三個(gè)主要選項(xiàng):

·–detach-keys[=[]]:指定退出attach模式的快捷鍵序列,默認(rèn)是CTRL-p CTRL-q;

·–no-stdin=true|false:是否關(guān)閉標(biāo)準(zhǔn)輸入,默認(rèn)是保持打開;

·–sig-proxy=true|false:是否代理收到的系統(tǒng)信號(hào)給應(yīng)用進(jìn)程,默認(rèn)為true。

但是,使用attach命令有時(shí)候并不方便。當(dāng)多個(gè)窗口同時(shí)使用attach命令連到同一個(gè)容器的時(shí)候,所有窗口都會(huì)同步顯示。當(dāng)某個(gè)窗口因命令阻塞時(shí),其他窗口也無法執(zhí)行操作了。

2、exec命令

Docker從1.3.0版本起提供了一個(gè)更加方便的exec命令,可以在容器內(nèi)直接執(zhí)行任意命令。該命令的基本格式為:

docker exec [-d|–detach] [–detach-keys[=[]]] [-i|–interactive] [–privileged] [-t|–tty] [-u|–user[=USER]] CONTAINER COMMAND [ARG…]。

比較重要的參數(shù)有:

·-i,–interactive=true|false:打開標(biāo)準(zhǔn)輸入接受用戶輸入命令,默認(rèn)為false;

·–privileged=true|false:是否給執(zhí)行命令以高權(quán)限,默認(rèn)為false;

·-t,–tty=true|false:分配偽終端,默認(rèn)為false;

·-u,–user=”“:執(zhí)行命令的用戶名或ID。

例如進(jìn)入到剛創(chuàng)建的容器中,并啟動(dòng)一個(gè)bash:

Docker如何進(jìn)入啟動(dòng)容器

可以看到,一個(gè)bash終端打開了,在不影響容器內(nèi)其他應(yīng)用的前提下,用戶可以很容易與容器進(jìn)行交互。
通過指定-it參數(shù)來保持標(biāo)準(zhǔn)輸入打開,并且分配一個(gè)偽終端。通過exec命令對(duì)容器執(zhí)行操作是最為推薦的方式。

3、nsenter 工具

在util-Linux軟件包版本2.23+中包含nsenter工具。如果系統(tǒng)中的util-linux包沒有該命令,可以按照下面的方法從源碼安裝:

$ cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;
$ ./configure --without-ncurses
$ make nsenter && cp nsenter /usr/local/bin

為了使用nsenter連接到容器,還需要找到容器進(jìn)程的PID,可以通過下面的命令獲?。?/p>

PID=$(docker inspect --format "{{ .State.Pid }}" )

通過這個(gè)PID,就可以連接到這個(gè)容器:

$ nsenter --target $PID --mount --uts --ipc --net --pid

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

當(dāng)前題目:Docker如何進(jìn)入啟動(dòng)容器
文章轉(zhuǎn)載:http://bm7419.com/article20/jdegco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)軟件開發(fā)、自適應(yīng)網(wǎng)站、建站公司、靜態(tài)網(wǎng)站、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)