99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

如何訪問Docker容器?

發(fā)布時(shí)間:2016-12-02 00:05  回復(fù):0  查看:2308   最后回復(fù):2016-12-02 00:05  
使用docker創(chuàng)建了容器之后,大家比較關(guān)心的就是如何在宿主機(jī)中訪問容器,進(jìn)入docker容器的方法有好幾種,這里就羅列下我知道的幾種方式。進(jìn)入docker容器的比較常見的方式如下:
  · 使用 docker attach container
  · 使用 ssh
  · 使用 nsenter
  · 使用 exec
  使用docker attach方式進(jìn)入容器
  Docker提供了attach命令來進(jìn)入容器.docker attach的help如下
  Usage: docker attach [OPTIONS] CONTAINER
  Attach to a running container
  Options:
  --detach-keys string Override the key sequence for detaching a container
  --help Print usage
  --no-stdin Do not attach STDIN
  --sig-proxy Proxy all received signals to the process (default true)
  我們首先創(chuàng)建一個(gè)運(yùn)行在守護(hù)態(tài)的docker容器,然后使用docker attach命令進(jìn)入該容器
  //啟動(dòng)一個(gè)docker容器
  docker run -itd saltstack/ubuntu-14.04 /bin/bash
  使用docker ps -a查看該容器的容器id,結(jié)果如下:
如何訪問Docker容器?
 這里我們可以看到該容器的id為43bdf46c62e1,這時(shí)候我們就可以執(zhí)行 docker attach 43bdf46c62e1 命令來進(jìn)入剛剛啟動(dòng)的容器,如圖所示:
如何訪問Docker容器?
 但是使用docker attach命令會(huì)有一個(gè)副作用。當(dāng)多個(gè)窗口使用該命令進(jìn)入43bdf46c62e1r容器的時(shí)候所有的窗口都會(huì)同步顯示。如果有一個(gè)窗口阻塞了,那么其他的窗口再也無法進(jìn)行其他的操作。多個(gè)窗口同步顯示如圖所示:
如何訪問Docker容器?
使用ssh的方式進(jìn)入docker容器
對(duì)于容器的使用,除了attach命令之外,比較容易想到的就是使用ssh的方
式連接容器,在容器中安裝ssh server,這樣就能保證多人進(jìn)入容器且互不干擾。
  使用nsenter進(jìn)入Docker容器
  在上面兩種方式都不適合的情況下,還有一種比較方便的方法,即使用
nsenter進(jìn)入Docker容器。關(guān)于什么是nsenter請參考 nsenter github repo .
  安裝nsenter
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.gzcd util-linux-2.24/
./configure --without-ncursesmake nsenter
    sudo cp nsenter /usr/local/bin
  下面的話,我們需要使用nsenter進(jìn)入容器內(nèi)部。首先我們需要獲取容器的PID號(hào)。這里如果通過執(zhí)行 docker inspect 31ced27e1684 來獲取容器的PID號(hào)為44543。然后通過改PID號(hào),執(zhí)行 nsenter --target 44543 --mount --uts --ipc --net --pid
  如下圖所示:
如何訪問Docker容器?
使用exec進(jìn)入容器
  除了上面的做法之外,docker在1.3.x版本之后還提供了一種新的方式進(jìn)入容器。這種方式相對(duì)簡單
  docker exec --help
  Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  Run a command in a running container
  -d, --detach Detached mode: run command in the background
  --detach-keys Override the key sequence for detaching a container
  --help Print usage
  -i, --interactive Keep STDIN open even if not attached
  --privileged Give extended privileges to the command
  -t, --tty Allocate a pseudo-TTY
  -u, --user Username or UID (format:<NAME|UID>[:<GROUP|GID>])
  接下來,我們通過 exec 來進(jìn)入一個(gè)已經(jīng)在運(yùn)行的容器
  //查看已經(jīng)在運(yùn)行的容器ID
  docker ps -a//通過exec命令對(duì)指定的容器執(zhí)行bash
  docker exec -it 31ced27e1684 /bin/bash
  如圖所示:
如何訪問Docker容器?
來源:devcat
您還未登錄,請先登錄

熱門帖子

最新帖子

?