這篇文章主要講解了“訪問Docker容器的方法有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“訪問Docker容器的方法有哪些”吧!
成都創(chuàng)新互聯(lián)是專業(yè)的清河網(wǎng)站建設(shè)公司,清河接單;提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行清河網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
使用docker創(chuàng)建了容器之后,大家比較關(guān)心的就是如何在宿主機(jī)中訪問容器,進(jìn)入docker容器的方法有好幾種,這里就羅列下我知道的幾種方式。進(jìn)入docker容器的比較常見的方式如下:
使用 docker attach container
使用 ssh
使用 nsenter
使用 exec
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é)果如下:
這里我們可以看到該容器的id為43bdf46c62e1,這時(shí)候我們就可以執(zhí)行 docker attach 43bdf46c62e1
命令來進(jìn)入剛剛啟動(dòng)的容器,如圖所示:
但是使用docker attach命令會(huì)有一個(gè)副作用。當(dāng)多個(gè)窗口使用該命令進(jìn)入43bdf46c62e1r容器的時(shí)候所有的窗口都會(huì)同步顯示。如果有一個(gè)窗口阻塞了,那么其他的窗口再也無法進(jìn)行其他的操作。多個(gè)窗口同步顯示如圖所示:
對于容器的使用,除了attach命令之外,比較容易想到的就是使用ssh的方式連接容器,在容器中安裝ssh server,這樣就能保證多人進(jìn)入容器且互不干擾。關(guān)于為什么不建議使用,請參考這篇文章: Why you don’t need to run SSHd in your Docker containers 。(英文不好可以看到 中文版 )
在上面兩種方式都不適合的情況下,還有一種比較方便的方法,即使用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
下面的話,我們需要使用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在1.3.x版本之后還提供了一種新的方式進(jì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>])
接下來,我們通過 exec
來進(jìn)入一個(gè)已經(jīng)在運(yùn)行的容器
//查看已經(jīng)在運(yùn)行的容器ID docker ps -a //通過exec命令對指定的容器執(zhí)行bash docker exec -it 31ced27e1684 /bin/bash
如圖所示:
感謝各位的閱讀,以上就是“訪問Docker容器的方法有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對訪問Docker容器的方法有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)站標(biāo)題:訪問Docker容器的方法有哪些
路徑分享:http://www.rwnh.cn/article30/gjhipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、靜態(tài)網(wǎng)站、微信小程序、搜索引擎優(yōu)化、網(wǎng)站建設(shè)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)