国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

訪(fǎng)問(wèn)Docker容器的方法有哪些

發(fā)布時(shí)間:2021-08-17 12:35 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 服務(wù)器 歡迎投稿:712375056

這篇文章主要講解了“訪(fǎng)問(wèn)Docker容器的方法有哪些”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“訪(fǎng)問(wèn)Docker容器的方法有哪些”吧!

概述

使用docker創(chuàng )建了容器之后,大家比較關(guān)心的就是如何在宿主機中訪(fǎng)問(wèn)容器,進(jìn)入docker容器的方法有好幾種,這里就羅列下我知道的幾種方式。進(jìn)入docker容器的比較常見(jiàn)的方式如下:

  • 使用 docker attach container

  • 使用 ssh

  • 使用 nsenter

  • 使用 exec

使用docker attach方式進(jìn)入容器

Docker提供了attach命令來(lái)進(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è)運行在守護態(tài)的docker容器,然后使用docker attach命令進(jìn)入該容器

//啟動(dòng)一個(gè)docker容器
docker run -itd saltstack/ubuntu-14.04 /bin/bash

使用docker ps -a查看該容器的容器id,結果如下:

這里我們可以看到該容器的id為43bdf46c62e1,這時(shí)候我們就可以執行 docker attach 43bdf46c62e1 命令來(lái)進(jìn)入剛剛啟動(dòng)的容器,如圖所示: 

但是使用docker attach命令會(huì )有一個(gè)副作用。當多個(gè)窗口使用該命令進(jìn)入43bdf46c62e1r容器的時(shí)候所有的窗口都會(huì )同步顯示。如果有一個(gè)窗口阻塞了,那么其他的窗口再也無(wú)法進(jìn)行其他的操作。多個(gè)窗口同步顯示如圖所示:

使用ssh的方式進(jìn)入docker容器

對于容器的使用,除了attach命令之外,比較容易想到的就是使用ssh的方式連接容器,在容器中安裝ssh server,這樣就能保證多人進(jìn)入容器且互不干擾。關(guān)于為什么不建議使用,請參考這篇文章: Why you don’t need to run SSHd in your Docker containers 。(英文不好可以看到 中文版 ) 

使用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.gz
cd util-linux-2.24/
./configure --without-ncurses
make nsenter
sudo cp nsenter /usr/local/bin

下面的話(huà),我們需要使用nsenter進(jìn)入容器內部。首先我們需要獲取容器的PID號。這里如果通過(guò)執行 docker inspect 31ced27e1684 來(lái)獲取容器的PID號為44543。然后通過(guò)改PID號,執行 nsenter --target 44543 --mount --uts --ipc --net --pid 

如下圖所示:

使用exec進(jìn)入容器

除了上面的做法之外,docker在1.3.x版本之后還提供了一種新的方式進(jìn)入容器。這種方式相對簡(jiǎn)單 

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>])

接下來(lái),我們通過(guò) exec 來(lái)進(jìn)入一個(gè)已經(jīng)在運行的容器 

//查看已經(jīng)在運行的容器ID
docker ps -a
//通過(guò)exec命令對指定的容器執行bash
docker exec -it 31ced27e1684 /bin/bash

如圖所示:

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

色天使亚洲综合一区二区| 久久天天躁夜夜躁狠狠躁2022| 亚洲人成无码网站在线观看| 国产乱人伦在线播放| 国产尤物AV尤物在线观看| 日本特黄特黄刺激大片|