Docker如何進(jìn)入啟動(dòng)容器
本文介紹了Docker如何進(jìn)入啟動(dòng)容器,分享給大家,具體如下:
在使用-d參數(shù)時(shí),容器啟動(dòng)后會(huì)進(jìn)入后臺(tái),用戶(hù)無(wú)法看到容器中的信息,也無(wú)法進(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)是保持打開(kāi);
·–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í),其他窗口也無(wú)法執(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:打開(kāi)標(biāo)準(zhǔn)輸入接受用戶(hù)輸入命令,默認(rèn)為false;
·–privileged=true|false:是否給執(zhí)行命令以高權(quán)限,默認(rèn)為false;
·-t,–tty=true|false:分配偽終端,默認(rèn)為false;
·-u,–user=”“:執(zhí)行命令的用戶(hù)名或ID。
例如進(jìn)入到剛創(chuàng)建的容器中,并啟動(dòng)一個(gè)bash:

可以看到,一個(gè)bash終端打開(kāi)了,在不影響容器內(nèi)其他應(yīng)用的前提下,用戶(hù)可以很容易與容器進(jìn)行交互。
通過(guò)指定-it參數(shù)來(lái)保持標(biāo)準(zhǔn)輸入打開(kāi),并且分配一個(gè)偽終端。通過(guò)exec命令對(duì)容器執(zhí)行操作是最為推薦的方式。
3、nsenter 工具
在util-Linux軟件包版本2.23+中包含nsenter工具。如果系統(tǒng)中的util-linux包沒(méi)有該命令,可以按照下面的方法從源碼安裝:
$ 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,可以通過(guò)下面的命令獲?。?/p>
PID=$(docker inspect --format "{{ .State.Pid }}" )
通過(guò)這個(gè)PID,就可以連接到這個(gè)容器:
$ nsenter --target $PID --mount --uts --ipc --net --pid
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
嘗試Docker+Nginx部署單頁(yè)應(yīng)用方法
這篇文章主要介紹了嘗試Docker+Nginx部署單頁(yè)應(yīng)用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Docker如何創(chuàng)建一個(gè)Jar服務(wù)容器
這篇文章主要介紹了Docker如何創(chuàng)建一個(gè)Jar服務(wù)容器問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Centos中使用Docker安裝rabbitmq的問(wèn)題記錄
這篇文章主要介紹了Centos中使用Docker安裝rabbitmq的問(wèn)題記錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-05-05
Docker安裝部署Redis數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟
本文主要介紹了Docker安裝部署Redis數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Windows11上Docker Desktop鏡像源配置失效排查與解決方案
這篇文章主要介紹了Windows11上Docker Desktop鏡像源配置失效排查與解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
dockerfile中su命令切換用戶(hù)激活環(huán)境,報(bào)錯(cuò)su: invalid option
本文主要介紹了dockerfile中su命令切換用戶(hù)激活環(huán)境以及報(bào)錯(cuò)su: invalid option -- ‘n‘的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01
Docker鏡像用普通用戶(hù)啟動(dòng)服務(wù)的實(shí)現(xiàn)
使用普通用戶(hù)啟動(dòng)Docker容器中的服務(wù),可以有效降低潛在的安全風(fēng)險(xiǎn),本文主要介紹了Docker鏡像用普通用戶(hù)啟動(dòng)服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
docker?安裝部署多個(gè)MySQL的實(shí)現(xiàn)步驟
本文主要介紹了docker?安裝部署多個(gè)MySQL的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

