如何使用Docker

本篇內(nèi)容介紹了“如何使用Docker”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、沙坪壩網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為沙坪壩等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

環(huán)境

我的基礎(chǔ)運(yùn)行環(huán)境是運(yùn)行在win10專業(yè)版hyperv虛擬機(jī)中的centos7-minimal版本。新裝的虛擬機(jī),保證運(yùn)行環(huán)境不受奇奇怪怪的東西影響。

centos安裝docker簡潔明快:sudo yum install docker -y。等著就行……安裝內(nèi)容如下:

如何使用Docker

啟動docker服務(wù)

與安裝一樣簡潔明快:sudo systemctl start docker。如果沒有報錯,那就是啟動完成了。(我喜歡用systemctl,反正只要能啟動服務(wù),你想咋啟動就咋啟動。)命令沒有回顯,我就不截圖了。

獲取容器鏡像

docker提供鏡像搜索命令(search),方便你快速找到自己想要的鏡像。當(dāng)然,鏡像的源你可以自己配置,默認(rèn)是docker.io。我只打算找一個centos的鏡像,所以默認(rèn)的源就行。搜索命令如下:

如何使用Docker

可以看到,搜索到好多鏡像。最后兩列字面意思我沒理解,但是應(yīng)該是標(biāo)記官方鏡像和開發(fā)者上傳的鏡像。我選擇第一個,標(biāo)記著“官方的”,應(yīng)該沒有裝任何其他的東西。

嗯,接下來就是下載(pull)鏡像了。命令如下(渣渣網(wǎng)速):

如何使用Docker

可以看到,默認(rèn)下載的是最新的(latest)。當(dāng)然,你可以下載其他非最新的版本,具體操作請查詢pull命令的相關(guān)參數(shù)。我只要最新的(傲嬌臉)。這個鏡像大小也是6 。這么小,估計真的是什么都沒裝吧(還是壓縮了?)……

如何使用Docker

上面是下載完成后顯示的信息。

創(chuàng)建容器

接下來就是從剛下載的鏡像創(chuàng)建一個容器了。新的容器的所有內(nèi)容都會從鏡像里拷貝(那個改是拷貝吧)。

聲明:由于輸入sudo太麻煩,所以下面的演示都用root用戶執(zhí)行。

創(chuàng)建容器(run)命令就比較復(fù)雜了,參數(shù)較多:

如何使用Docker

如上,我來一個一個解釋:

  • -itd:這是 -i -t -d 的簡寫。-i 表示保持打開標(biāo)準(zhǔn)輸入流(stdin),無論是否連接到此容器。-t 為容器分配一個虛擬的tty。-d 表示后臺模式運(yùn)行容器,即容器啟動后將斷開與當(dāng)前終端的連接。(之后會演示怎么再連回來)。

  • --name:這是為容器起一個名字,之后與容器的交互需要用到,當(dāng)然用容器的id也是可以的(就是run命令后那個巨長的回顯)。當(dāng)然,不寫的話也會有默認(rèn)的名字。

  • -v:表示掛載宿主機(jī)(這個稱呼對嗎?)目錄到容器的目錄(宿主機(jī)目錄路徑:容器目錄路徑)。當(dāng)然可以設(shè)置讀寫屬性,這個就不說了,可以自行探索。

  • -p:表示映射(端口轉(zhuǎn)發(fā)?)主機(jī)端口至容器端口(主機(jī)端口:容器端口)。這個參數(shù)可以重復(fù)出現(xiàn),映射多個端口。這個參數(shù)也有許多情況,也請自行探索。

  • centos:這個是本地鏡像名稱(centos),必須是已經(jīng)下載(pull)到本地的鏡像。當(dāng)然,若是本地沒有,docker會執(zhí)行search并詢問你是不是要下載。

  • /bin/bash:這個是本次啟動的鏡像要執(zhí)行的任務(wù)。這個門道比較多,我在后面會說一下。

  • 此處省略了-a參數(shù)。-a參數(shù)可以指定連接準(zhǔn)輸入流(stdin)、標(biāo)準(zhǔn)輸出流(stdout)和標(biāo)準(zhǔn)錯誤流(stderr),默認(rèn)好像是都連接??梢燥@式使用,以連接指定的流。

查看容器

使用docker ps -a 命令可以查看當(dāng)前存在的所有容器:

如何使用Docker

如上,我只運(yùn)行了一個容器。命令顯示了容器的id、使用的鏡像、運(yùn)行的命令、創(chuàng)建時間、運(yùn)行時間、端口映射、名稱。

連接容器

連接容器有多種辦法。在宿主機(jī)中使用docker的attach命令,即可連接到容器:

如何使用Docker

如上,就已經(jīng)連接到容器了??梢钥吹矫钚行畔⒌淖兓?/p>

我使用了ps命令查看了容器中的進(jìn)程??梢钥吹揭粋€id為1的進(jìn)程,這個進(jìn)程就是run命令最后的那個參數(shù)。run命令所指定的任務(wù)進(jìn)程id一定是1 。我們使用attach命令連接的也是這個命令的標(biāo)準(zhǔn)輸入輸出流(錯誤流我不知道連接了沒)。由于run指定的命令是bash,所以attach也是連接到了bash,這樣就能隨意操作容器了。

關(guān)閉連接很容易想到,就是退出bash:exit。

但是、但是、但是,這樣退出會導(dǎo)致一個問題,那時就是:容器因?yàn)?號進(jìn)程的退出(就是attach命令連接的bash),會認(rèn)為任務(wù)已完成,容器就停止了。

如何使用Docker

如上,容器已經(jīng)停止了(exited)。

所以,我建議使用exec命令對容器進(jìn)行操作。我們重啟容器:

如何使用Docker

可以看到,start 加容器名稱就能啟動。

使用exec命令,可以讓容器直接執(zhí)行命令(docker exec 容器名稱 命令):

如何使用Docker

如上,是我用exec對nethost執(zhí)行ps命令查看進(jìn)程,執(zhí)行l(wèi)s命令列出根目錄。

也可以用exec執(zhí)行bash并掛載輸入輸出流:

如何使用Docker

如上,是我用exec命令啟動bash并掛載輸入輸出流。-it參數(shù)的意義和run命令相同,不同的是沒有使用-d命令,這樣(前臺模式)可以使命令執(zhí)行后直接連接輸入輸出流。我執(zhí)行了ls命令和ps命令。

從ps命令的顯示可以看出,exec命令啟動了一個新的bash,pid為24(當(dāng)然,pid應(yīng)該是隨機(jī)賦值的)。區(qū)別于pid為1的bash,我們當(dāng)前連接的就是這個pid為24的bash,一樣可以執(zhí)行命令,隨意操作。并且退出之后,也不會影響pid為1的bash,這樣就可以使容器繼續(xù)運(yùn)行。

如何使用Docker

上圖可見,我退出了容器的bash后,容器依然在運(yùn)行。我在宿主機(jī)中使用exec執(zhí)行ps命令后,nethost這個容器中1號進(jìn)程仍然在運(yùn)行。

停止和刪除容器

上面提到了啟動容器(start)命令,停止容器當(dāng)然是停止命令(stop)了。

如何使用Docker

stop命令執(zhí)行效果如上。

刪除容器更容易,使用rm命令:

如何使用Docker

如上,我刪除了名為nethost的容器,因?yàn)橹挥幸粋€容器,所以刪除之后九沒有容器了。要注意的是:rm命令只能刪除已經(jīng)停止的容器。并且rm命令不像linux的rm命令那樣會有刪除確認(rèn),docker的rm命令會直接刪除容器,所以用的時候要小心。

“如何使用Docker”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

分享標(biāo)題:如何使用Docker
瀏覽路徑:http://bm7419.com/article0/jcegoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)網(wǎng)站設(shè)計標(biāo)簽優(yōu)化、企業(yè)網(wǎng)站制作、、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)