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