我們一起學docker之五 容器

2021-09-25 05:14:21 字數 3268 閱讀 2341

本章我們繼續講解docker的三大基礎概念中的乙個:容器。

簡單的說,容器是映象執行環境的展示,也是執行映象的乙個例項。之前講過,若覺得容器不好理解,而你理解vm的虛擬機器的內容,那你可以把容器想象成我們建立的乙個vm虛擬機器。雖然不是,但是方便你去理解。

容器的優點是十分的輕量級,你可以隨時隨地的建立、刪除。

#1.建立容器

基於標籤為skyfans的映象建立乙個tomcat容器

docker create -it tomcat:skyfans
當我們使用如上命令建立容器時,預設容器是不會自行啟動的,需要我們手動啟動。

docker start  2ef43537abd4
這時,我們在檢視剛才的容器,發現此容器已經成功啟動了,並且埠是8080。

是不是感覺有點麻煩,那是否可以直接建立乙個容器同時就啟動它呢,那是必須可以的!

docker run -itd tomcat:skyfans
docker ps -a
我們可以看到,我們剛才建立了乙個容器,並且成功的直接啟動了容器,無需再執行docker start命令去啟動容器了。

命令格式:docker exec -it 容器id 環境語言(可以是sh/bash/等)

這樣,我們就進入到了容器的內部,你是不是會很好奇,那容器內部是什麼呢?好我們來看下。

根據圖中我們可以看到咦?當我在/下執行ls命令的時候,檢視到的檔案列表是不是都是很熟悉呢?沒錯,那些都是我們日長使用的linux伺服器的的檔案。所以說,我們可以把容器理解為乙個小的虛擬機器。它包含了作業系統及很多的檔案內容,像不像乙個微型的伺服器??這也是docker的乙個優點所在,輕小!!!當然,你也可以在容器裡執行各種linux命令,但是要小心的是映象中可能會沒有這個命令,例如圖中ll命令就沒有。

兩種方式

(1)在命令列下輸入exit命令

(2)按住ctrl+d即可退出容器。

例如我們想讓部署的重啟停止該如何操作呢?我們來拿剛才我們啟動的tomcat的容器做操作。

記錄當前容器狀態(注意觀察status狀態):

docker  ps

docekr stop  4be18e964de5
當我們把容器停止後,記得要在檢視docker容器的狀態,需要加-a引數,否則我們會找不到剛才停止的那個容器。注意:docker ps 是檢視當前正在執行的容器!!

我們發現容器的status的狀態已經是在2s之前退出了,說明此容器已經停止了。停止後的容器,我們仍然可以使用docker start來啟動它。

docker start 4be18e964de5

docekr ps

我們看到,容器已經啟動起來了,在2秒之前。

那不難理解,我們當把容器理解為linux系統的虛擬機器時,我們要重啟系統應該怎麼操作?對,執行reboot命令。但是容器的重啟命令不是reboot,而是restart.

再次記錄剛才操作的容器的情況,由於老師的伺服器上面有多個啟動的容器,為了不影響我們的視線,那我們過濾下,只看用於測試的容器:

docker ps |grep tomcat
記錄啟動時間 :2分鐘前。我們去執行重啟容器命令,這裡我又犯了懶病,就使用容器的id的前三位了啊:

我們有沒有發現,重啟後,容器的執行時間變成了2s。是不是感覺很方便,這裡執行乙個命令我們就可以檢視到容器的幾乎管理的所有內容,包括容器的名字,id,啟動時間,執行時差,埠等等,是不是感覺非常的方便?????

命令格式:docekr rm 容器id

那我們就操作我們剛才建立的容器

docker rm 4be18e964de5
什麼?出現了這個提示??啥情況??哦,仔細讀下發現哦,他說正在執行的容器是不允許你進行刪除的。那就是說,我們還需要把這個容器先停止,在刪除。嗯,是不是感覺安全了些呢?

這時,我們發現已經成功刪除了剛才的容器。

好,容器部分的內容差不多已經講解完了。關於容器還有存出和載入的內容,這裡我們就不講了,可以參考:docker私有映象倉庫搭建(可供本地及私有環境使用)

這個是對docker操作的乙個完整的總結流程,想學的同學不要手懶,去照著做一遍。

我們來總結下:

docker run [options] image[:tag] [command] [arg…]

決定容器的執行方式,前台執行還是後台執行(後台命令需要加什麼)

docker run後面追加-d=true或者-d,那麼容器將會執行在後台模式。

docker exec來進入到到該容器中,或者attach重新連線容器的會話

進行互動式操作(例如shell指令碼),那我們必須使用-i -t引數同容器進行資料互動

docker run時沒有指定–name,那麼deamon會自動生成乙個隨機字串uuid

我們一起學python

直接上乾貨,這裡主要介紹一下python與c語言在基本語法上的不同 1 字串既可以被 包圍還可以被 包圍,效果一樣。2 有兩種除法 和 前者的用法和c一樣,整數相除為整數 後一種結果可能為小數。3 python中語句結束沒有分號,douhao。4 冒號後表示縮排的是 塊,並且縮排只能是4個空格 我也...

我們一起學docker之四 映象內容之二

這裡想起來同事說的一句話,覺得挺好玩,這裡也分享給大家。那他是乙個程式設計師出身的,現在也是總監級別的。這句話的內容是 人生很多的時候就是在體驗不同的增刪改查,無論你是換了工作,換了行業還是什麼,就是在不同的地方做著增刪改查的操作。好,廢話不多說。這裡我們繼續上節的映象內容進行講解。每乙個刪除的操作...

跟我一起學docker 四 容器的基本操作

1 建立容器 docker的容器十分輕量級,使用者可以隨時建立或刪除容器。新建容器 docker create example docker create ti ubuntu 說明 使用docker create命令建立的容器處於停止狀態,可以使用docker start命令啟動它。新增加了乙個na...