使用NSENTER進入容器的方法

2021-07-27 02:47:57 字數 1108 閱讀 8523

對於執行在後台的docker容器,我們經常需要做的事情是進入到容器中,docker為我們提供了docker exec 、docker attach 命令,並且還提供了nsenter工具,外部工具供我們使用。docker attach存在的問題是:當多個視窗同時attach到同乙個容器時,所有的視窗都會同步的顯示,假如其中的乙個視窗發生阻塞時,其它的視窗也會阻塞,docker attach命令可以說是最不方便的進入後台docker容器的方法。docker exec命令是在docker 1.3之後增加的乙個比docker attach命令更加方便的命令。和docker exec差不多方便的命令是nsenter工具。

在使用nsenter命令之前需要獲取到docker容器的程序,然後再使用nsenter工具進去到docker容器中,具體的使用方法如下:

$

docker

inspect-f

}容器名或者容器id

#每乙個容器都有

.state

.pid,所以這個命令除了容器的id需要我們根據dockerps-

a去查詢,其他的全部為固定的格式

$nsenter--

target

上面查到的程序id--

mount--

uts-

-ipc--

net-

-pid

#輸入該命令便進入到容器中

解釋nsenter指令中程序id之後的引數的含義:

* –mount引數是進去到mount namespace中

* –uts引數是進入到uts namespace中

* –ipc引數是進入到system v ipc namaspace中

* –net引數是進入到network namespace中

* –pid引數是進入到pid namespace中

* –user引數是進入到user namespace中

在linux中,最愛簡單的檢視指定命令引數含義的辦法是在終端中輸入:

$ nsenter --help  #會回顯所有與該命令有關的引數

$ man nsenter #能查到更加詳細的使用示例和引數說明

Docker容器的進入方式

在使用docker建立了容器之後,大家比較關心的就是如何進入該容器了,其實進入docker容器有好幾多種方式,這裡我們就講一下常用的幾種進入docker容器的方法。進入docker容器比較常見的幾種做法如下 docker提供了attach命令來進入docker容器。接下來我們建立乙個守護態的dock...

docker exec 進入停止的容器

遇到乙個情況,容器裡的應用啟動拋異常,導致容器很快就結束了 或者構建映象時失敗了.想到容器裡看看發生了什麼事 通過簡單的 docker logs 可能無法解決問題 如果乙個容器已經stop,那麼你是無法docker exec進去的.會提示error response from daemon cont...

docker進入容器的方式

通過docker建立守護執行 在使用 d引數時 的容器時,容器啟動後會進入後台。使用者無法看到容器中的資訊。某些時候如果需要進入容器進行操作,有多種方法,包括使用docker attach命令 docker exec命令,以及nsenter工具等。docker attach 容器名稱 id 在使用a...