一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 初次使用Docker的體驗筆記總結

初次使用Docker的體驗筆記總結

2020-12-17 20:57提里科留斯 服務器知識

這篇文章主要介紹了初次使用Docker的體驗筆記總結,對初學Docker具有一定的參考價值,有需要的可以了解一下。

一、前言

docker容器已經發布許久,但作為一名程序員如今才開始接觸,實在是罪過……

在此之前,我還沒有對docker進行過深入的了解,對它的認識仍停留在:這是一種新型的虛擬機。這樣的層面。今天就我的初次體驗進行記錄。聲明一點:以下內容大部分是主觀片面的,另有來自百度的(嗯,就是百度)。要是有什么說的不對,或者是理解有問題的地方,還請大家告訴我,先謝謝大家了。

二、環境

我的基礎運行環境是運行在win10專業版hyperv虛擬機中的centos7-minimal版本。新裝的虛擬機,保證運行環境不受奇奇怪怪的東西影響。

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

初次使用Docker的體驗筆記總結

三、啟動docker服務

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

、獲取容器鏡像

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

初次使用Docker的體驗筆記總結

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

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

初次使用Docker的體驗筆記總結

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

初次使用Docker的體驗筆記總結

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

五、創建容器

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

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

創建容器(run)命令就比較復雜了,參數較多:

初次使用Docker的體驗筆記總結

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

  • -itd:這是 -i -t -d 的簡寫。-i 表示保持打開標準輸入流(stdin),無論是否連接到此容器。-t 為容器分配一個虛擬的tty。-d 表示后臺模式運行容器,即容器啟動后將斷開與當前終端的連接。(之后會演示怎么再連回來)。
  • --name:這是為容器起一個名字,之后與容器的交互需要用到,當然用容器的id也是可以的(就是run命令后那個巨長的回顯)。當然,不寫的話也會有默認的名字。
  • -v:表示掛載宿主機(這個稱呼對嗎?)目錄到容器的目錄(宿主機目錄路徑:容器目錄路徑)。當然可以設置讀寫屬性,這個就不說了,可以自行探索。
  • -p:表示映射(端口轉發?)主機端口至容器端口(主機端口:容器端口)。這個參數可以重復出現,映射多個端口。這個參數也有許多情況,也請自行探索。
  • centos:這個是本地鏡像名稱(centos),必須是已經下載(pull)到本地的鏡像。當然,若是本地沒有,docker會執行search并詢問你是不是要下載。
  • /bin/bash:這個是本次啟動的鏡像要執行的任務。這個門道比較多,我在后面會說一下。
  • 此處省略了-a參數。-a參數可以指定連接準輸入流(stdin)、標準輸出流(stdout)和標準錯誤流(stderr),默認好像是都連接。可以顯式使用,以連接指定的流。

以上就是命令的相關解釋,是我自己配合百度理解的,要是有不對的,請大家留言哦。

六、查看容器

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

初次使用Docker的體驗筆記總結

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

七、連接容器

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

初次使用Docker的體驗筆記總結

如上,就已經連接到容器了。可以看到命令行信息的變化。

我使用了ps命令查看了容器中的進程。可以看到一個id為1的進程,這個進程就是run命令最后的那個參數。run命令所指定的任務進程id一定是1 。我們使用attach命令連接的也是這個命令的標準輸入輸出流(錯誤流我不知道連接了沒)。由于run指定的命令是bash,所以attach也是連接到了bash,這樣就能隨意操作容器了。

關閉連接很容易想到,就是退出bash:exit。

但是、但是、但是,這樣退出會導致一個問題,那時就是:容器因為1號進程的退出(就是attach命令連接的bash),會認為任務已完成,容器就停止了。

初次使用Docker的體驗筆記總結

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

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

初次使用Docker的體驗筆記總結

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

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

初次使用Docker的體驗筆記總結

如上,是我用exec對nethost執行ps命令查看進程,執行ls命令列出根目錄。

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

初次使用Docker的體驗筆記總結

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

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

初次使用Docker的體驗筆記總結

上圖可見,我退出了容器的bash后,容器依然在運行。我在宿主機中使用exec執行ps命令后,nethost這個容器中1號進程仍然在運行。

八、停止和刪除容器

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

初次使用Docker的體驗筆記總結

stop命令執行效果如上。

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

初次使用Docker的體驗筆記總結

如上,我刪除了名為nethost的容器,因為只有一個容器,所以刪除之后九沒有容器了。要注意的是:rm命令只能刪除已經停止的容器。并且rm命令不像linux的rm命令那樣會有刪除確認,docker的rm命令會直接刪除容器,所以用的時候要小心。

十、其他

其他的內容,如:備份、遷移、上傳鏡像等,我還沒有試過,暫時不進行記錄。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91免费高清视频 | 日韩二三区 | 动漫美女人物被黄漫在线看 | 我不卡影院手机在线观看 | 闺蜜调教我做她的脚奴 | 91真人毛片一级在线播放 | 亚洲瑟瑟网 | 国产精品四虎在线观看免费 | xxxx泡妞中国 | 四虎官网 | 日本中文字幕一区二区三区不卡 | 好大好硬抽搐好爽想要 | 日韩在线观看免费 | 午夜一个人在线观看完整版 | 亚洲欧美成人中文在线网站 | chinese高中生gay男同 | 人成网站在线观看 | 亚洲国产精品久久卡一 | 91青青视频 | 亚洲 欧美 制服 校园 动漫 | 国产免费久久精品 | 国产18在线 | 国产成人综合网亚洲欧美在线 | 色批网站www | 免费看3d小舞被躁视频网站 | 美女的让男人桶爽网站 | 91国内精品 | 欧美8x8x| 精品在线观看一区 | 国产成人夜色影视视频 | 成人午夜爽爽爽免费视频 | 国内精品免费一区二区三区 | 香蕉国产人午夜视频在线 | 刺客女仆 | 四虎在线精品免费高清在线 | 婷婷去我也去 | 99久久精品免费看国产一区二区 | 性欧美videosex18嫩 | 国产欧美国产精品第一区 | 色热综合| 日韩成人免费aa在线看 |