国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Docker 容器操作退出后進入解決辦法

2019-11-02 16:21:18
字體:
來源:轉載
供稿:網友

在我們對Docker容器操作的時候,有時候會誤操作或者其他的原因無意間退出了正在操作的容器,也許你會擔憂你在其中的一些操作未保存下來,無須擔憂,本文中將會提供各種方法供你參考(我的建議使用最后一種)。在本文,我們將討論五種(4+1)連接Docker容器并與其進行交互的方法。例子中所有的代碼都可以在GitHub中找到,你可以親自對它們進行測試。

1.nsenter

安裝

nsenter 工具在 util-Linux 包2.23版本后包含。 如果系統中 util-linux 包沒有該命令,可以按照下面的方法從源碼安裝。

你也可以點擊此鏈接進行下載  http://pan.baidu.com/s/1FEt8y

$ 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 && sudo cp nsenter /usr/local/bin 

使用

nsenter 可以訪問另一個進程的名字空間。nsenter 要正常工作需要有 root 權限。 很不幸,Ubuntu 14.4 仍然使用的是 util-linux 2.20。安裝最新版本的 util-linux(2.24)版,請按照以下步驟:

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

從util-linux版本2.23開始,nsenter工具就包含在其中。它用來訪問另一個進程的名字空間。nsenter要正常工作需要有root權限。很不幸,Ubuntu 14.4仍然使用的是util-linux版本2.20。安裝最新版本的util-linux(2.24)版,請按照以下步驟:

cd /tmp

為了連接到容器,你還需要找到容器的第一個進程的PID,通過這個PID,你就可以連接到這個容器:

$ docker inspect --format "{{ .State.Pid }}" <container-id> //or run 'docker inspect -f "{{ .State.Pid }}" <container-id>' $ nsenter --target $PID --mount --uts --ipc --net --pid 

2.nsinit

從0.9版本開始,Docker自身就具有一個管理容器的庫,名字為 libcontainer。libcontainer中的nsinit工具允許用戶直接訪問linux名字空間和cgroup內核。在安裝nsinit之前,你首先需要安裝Go運行時環境:

$ apt-get installgit golang-go   $ mkdir-p $HOME/go-dev/binmkdir-p $HOME/go-dev/src  $ echo"export GOPATH=/$HOME/go-dev" >> ~/.profileecho "PATH=/$PATH:/$GOPATH/bin">> ~/.profile   $ source~/.profile  

接下來才安裝nsinit:

$ apt-get installgit golang-go   $ mkdir-p $HOME/go-dev/binmkdir-p $HOME/go-dev/src  $ echo"export GOPATH=/$HOME/go-dev" >> ~/.profileecho "PATH=/$PATH:/$GOPATH/bin">> ~/.profile   $ source~/.profile  

nsinit讀取的是位于/var/lib/docer/execdriver/native/<Container-id>容器目錄下的配置數據。要運行nsinit,你需要切換到容器目錄下。由于/var/lib/docker目錄對于root用戶是只讀權限,因此你還需要root權限。通過docker的ps命令,你可以確定容器ID。一旦你進入/var/lib/docker目錄,你就可以連接容器了:

nsinit exec /bin/bash 

3.lxc(-attach)

直到Docker 0.8.1版本為止,LXC一直是管理容器的基本工具,Docker一直支持這個工具。但是從0.9.0版本開始,Docker默認使用libcontainer管理容器,不再依賴LXC了。因此默認情況下,你不能使用lxc-attach了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚东县| 乌海市| 囊谦县| 横山县| 定襄县| 栾城县| 随州市| 斗六市| 澄江县| 林甸县| 东安县| 华亭县| 博客| 灵丘县| 铜梁县| 如皋市| 沙河市| 三河市| 光泽县| 同德县| 高要市| 息烽县| 连城县| 札达县| 南昌县| 商洛市| 古田县| 文登市| 肃宁县| 宁蒗| 启东市| 任丘市| 林西县| 苍梧县| 城固县| 通山县| 攀枝花市| 稷山县| 土默特右旗| 辛集市| 乌海市|