對docker一些認知

2022-08-12 02:12:16 字數 2464 閱讀 7634

關於docker(應用容器引擎)        

乙個完整的docker有以下幾個部分組成:

dockerclient客戶端

docker daemon守護程序

docker image映象

dockercontainer容器

docker容器為什麼可以跨平台部署

docker映象和作業系統沒關係,docker最大的價值就是提出了映象打包技術。首先你的明白什麼是docker,什麼是映象,什麼是容器,然後你就能明白映象和作業系統之間的關係。

docker是乙個引擎,是基於核心的一種技術。比如linux核心,那麼它就關心是不是linux核心,它不關心你是ubuntu還是centos。所以docker也實現了和作業系統的解耦。

映象呢是把服務的執行環境打成了乙個包,比如tomcat,映象裡面是把除作業系統的核心以外,然後再加上tomcat的二進位製包。然後通過docker引擎構建出來乙個tomcat的映象。

容器呢,比如我們想建立乙個tomcat服務,之前的方式是在伺服器中通過tar或者是rpm安裝乙個tomcat,然後在start tomcat;如果我們要安裝多台的話我們需要多次手動去操作部署。現在有了tomcat映象以後,我們可以直接利用映象建立出多個tomcat來(關係是乙個tomcat映象可以建立出多個tomcat容器-即tomcat服務),把容器看成是tomcat的程序就行。 

簡單來說,乙個程式執行,需要作業系統的支援,並且需要訪問自己的私有的資料和軟體。

docker是容器,它將所有的訪問檔案和作業系統的api重新定向了,讓應用內感覺自己在一》個獨立的作業系統上執行,而docker攔截了api呼叫,並且把那些全域性的對作業系統的訪問》進行了包裝,使得程式不會真的訪問它們。

因為docker程式訪問的是容器包裝的api,理論上說,只要在另乙個作業系統上實現了這些》容器的api,就可以把程式移植上去,因為程式不直接和作業系統打交道,感覺不到不同系》統的不同。

為什麼使用docker部署服務

常用的一些操作:

1.檢視正在執行的容器

docker ps  

docker ps -a  為檢視所有的容器,包括已經停止的

2.檢視容器日誌:(動態檢視)

docker logs -f 《容器名orid>  

3.刪除所有容器:(沒有親測)

docker rm $(docker ps -a -q)

4.刪除單個容器:

docker rm 《容器名or id>

5.停止、啟動、殺死乙個容器:

docker stop 《容器名orid>

docker start 《容器名orid>

docker kill 《容器名orid>

6.檢視所有映象:

docker images

7.檢視容器的root使用者密碼:

docker logs 《容器名orid> 2>&1 | grep '^user: ' | tail -n1

ps:因為docker容器啟動時的root使用者的密碼是隨機分配的。所以,通過這種方式就可以得到redmine容器的root使用者的密碼了。

8.在容器開啟乙個互動模式的終端:

docker exec -it /bin/bash :-t 分配乙個虛擬終端;-i 標準輸入給容器  /bin/bash 執行bash指令碼

docker映象和作業系統沒關係,docker最大的價值就是提出了映象打包技術。首先你的明白什麼是docker,什麼是映象,什麼是容器,然後你就能明白映象和作業系統之間的關係。

docker是乙個引擎,是基於核心的一種技術。比如linux核心,那麼它就關心是不是linux核心,它不關心你是ubuntu還是centos。所以docker也實現了和作業系統的解耦。

映象呢是把服務的執行環境打成了乙個包,比如tomcat,映象裡面是把除作業系統的核心以外,然後再加上tomcat的二進位製包。然後通過docker引擎構建出來乙個tomcat的映象。

容器呢,比如我們想建立乙個tomcat服務,之前的方式是在伺服器中通過tar或者是rpm安裝乙個tomcat,然後在start tomcat;如果我們要安裝多台的話我們需要多次手動去操作部署。現在有了tomcat映象以後,我們可以直接利用映象建立出多個tomcat來(關係是乙個tomcat映象可以建立出多個tomcat容器-即tomcat服務),把容器看成是tomcat的程序就行。 

簡單來說,乙個程式執行,需要作業系統的支援,並且需要訪問自己的私有的資料和軟體。

docker是容器,它將所有的訪問檔案和作業系統的api重新定向了,讓應用內感覺自己在一》個獨立的作業系統上執行,而docker攔截了api呼叫,並且把那些全域性的對作業系統的訪問》進行了包裝,使得程式不會真的訪問它們。

因為docker程式訪問的是容器包裝的api,理論上說,只要在另乙個作業系統上實現了這些》容器的api,就可以把程式移植上去,因為程式不直接和作業系統打交道,感覺不到不同系》統的不同。

為什麼使用docker部署服務

個人對爬蟲框架的一些認知(四)

上章講解了 方面的使用知識點,本章給大家講下需要用到賬號的站點如何處理?賬號其實就是對應著乙個cookie字串。有的站點不需要登入所謂的賬號,但是在請求的時候cookie設定那塊也需要帶上特定的值,這型別的站點我們也歸到賬號一類。我們為賬號體系設定了乙個標準的model如下截圖,這裡以mysql資料...

對C 一些STL的認知(持續更新中 )

vector map上述兩個寫了兩篇部落格,現在覺得麻煩,就合在一起寫一篇。lower bound upper bound注 最好不要查詢不在陣列內的數 low er b ound l,r val lower bound l,r,val lower boun d l,r,va l 返回的是大於或等於...

關於finally的一些認知

簡介 相信大家在開發中都能使用很好的處理異常,那麼避免不了和try catch finally 接觸,慢慢的發現了下面的幾個問題,開發環境是vs2010 reshaper,當你想使用 塊時,智慧型提示會提示try和tryf兩種,那麼這兩種 塊有什麼樣的區別那,還有就是c 中的return是結束當前執...