小編給大家分享一下創建的docker容器無法訪問怎么回事,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
有時候我們在通過鏡像創建容器的過程中,使用命令:docker run --name docker-test -d learn/ping /bin/sh
,運行成功以后,發現容器沒有預期中的后臺運行,而是直接掛掉了,docker ps -a
發現容器已經運行結束了。
查找資料,發現是原因是:Docker容器后臺運行,就必須有一個前臺進程。容器運行的命令如果不是那些一直掛起的命令(比如運行top,ping),就是會自動退出的。
而上面的代碼中/bin/bash就是需要執行的指定的命令。命令如果執行完畢了,或者叫指定的應用終結時,容器會自動停止。/bin/bash這個命令肯定是一執行就結束了,-d 表示此容器以守護狀態運行,啟動后會返回一個容器ID。
既然短暫的命令會導致容器運行完就結束,那就嘗試持續的長時間掛起的命令,比如top,ping之類的,所以把命令改成 docker run --name docker-test -d learn/ping ping www.baidu.com
就行了,或者直接啟動掛起的容器,docker start learn/ping
,容器id可以通過docker ps -a查看。
然后,執行docker ps 你就會發現容器已經起來了,然后 docker attach learn/ping
進入容器的交互式界面,或者docker run -it learn/ping /bin/bash
直接進入交互式界面。
退出可以使用 ctrl+d或者ctrl+c,或者ctrl+p + ctrl+q。(這種可以退出到宿主機,而保持container仍然在運行,通過docker ps可以看出)前一種方式退出了,容器也結束了,后一種方式,容器還會在后臺運行。
以上是“創建的docker容器無法訪問怎么回事”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。