Docker學習筆記

2021-10-09 23:57:34 字數 2574 閱讀 7379

宿主機->大海

docker->鯨魚

容器->貨櫃

docker為什麼會出現

開發 vs 運維

乙個**,在開發的機器上能夠正常執行,而把**交給運維後,在運維的機器上不能執行。這是由於開發和運維的環境不同,那麼如何解決這個問題呢?

ans: 我們不再單純把**給運維,而是把我們的**加上各種中介軟體,系統,環境,配置,依賴等各種東西打成乙個映象,直接把映象給運維,運維就可以直接執行。每個軟體就是乙個貨櫃,相互隔離。乙隻鯨魚就是乙個映象。

稱之為:一次封裝,到處執行!!!

就像是寵物店買的小金魚,你直接把金魚拿回來放到自己家的魚缸裡,金魚活不成,金魚只能在原來的魚缸裡面活,所以就直接把魚缸也一起買來。

docker是什麼

解決了執行環境和配置問題的軟體容器,方便做持續繼承並有助於整體發布的容器虛擬化技術。

docker和虛擬機器的區別

客戶端通過守護程序來操作docker容器

這個就行

curl -ssl  | sh
配置阿里雲映象加速

從阿里雲映象服務獲取加速位址

/etc/docker/daemon.json配置如下

聯合檔案系統

就像是乙個花卷一樣,可以把檔案一層一層往上疊

docker映象的基礎

對外只暴露乙個檔案系統

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-dqg6mo9o-1601886843333)(

映象載入原理 && centos映象為什麼這麼小?

映象就是乙個小型精簡的linux

linux啟動的時候需要bootfs來進行引導

rootfs是具體的發行版系統

bootfs可以共用,所以映象的centos只需要rootfs,所以很小

為什麼docker中的tomcat這麼大?

如下,一層一層包起來

那麼檔案大小是如何計算?共享的算在內嗎?

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-s1jhi9rz-1601886843340)(

為什麼docker要採用這種分層結構

docker中映象的每一層都可以被共享

docker映象的commit

docker commit -a="zs" -m="some changes" 容器id 新名字:tag

docker中如何進入容器中的資料夾

docker exec -it 容器id /bin/bash

docker中如何執行tomcat?

docker run -it -p 8080:8090 映象id->互動執行

docker run -d -p 8080:8090 映象id->後台執行

docker中如何修改tomcat中的檔案?

在容器中不可以使用vi去編輯檔案,如果想修改配置檔案可以在容器外部修改然後複製到容器之中

docker cp 本機檔案 容器名:資料夾注意這個資料夾要全,因為乙個容器就是乙個小的linux

映象修改後要重新commit嗎?

要,修改後需要提交才能儲存

將docker中產生的資料持久化,類似於redis的rdb和aof,就相當於在主機和容器之間進行繫結

也可以實現容器間的資料共享

如何在宿主機和容器之間進行資料繫結?

通過命令

docker run -it -v 宿主機下絕對路徑:容器下的絕對路徑 映象名

docker run -it -v /host:/container 831691599b88

docker run -it -v /host:/container:ro 831691599b88–>如果是ro的話代表唯讀,此時容器中無法進行修改

通過dockerfile

特徵宿主機和容器之間的資料會共享,更新,保持一致

容器停止退出後,主機修改後資料依然同步

it -v /host:/container:ro 831691599b88`–>如果是ro的話代表唯讀,此時容器中無法進行修改

通過dockerfile

特徵宿主機和容器之間的資料會共享,更新,保持一致

容器停止退出後,主機修改後資料依然同步

docker學習筆記

1 docker依賴於linux核心,無法直接安裝在windows環境中,否則需要安裝docker toolbox 2 相關操作 docker create 建立乙個容器但是不啟動它 docker run 建立並啟動乙個容器 docker stop id 停止容器執行,傳送訊號sigterm doc...

Docker學習筆記

一 docker是什麼 docker是乙個開源的引擎,可以輕鬆的為任何應用建立乙個輕量級的 可移植的 自給自足的容器。就相當於書包可以裝書,水杯可以盛水。二 docker解決了什麼問題 我本地沒有問題啊 本地和線上的環境不一致問題,哪個哥們又寫死迴圈了 其他專案的出錯不影響你本身的專案 雙十一伺服器...

docker學習筆記

1.怎麼給執行中的docker容器新增新的埠 解決 1 獲得容器ip docker inspect container name grep ipaddress 2 iptable埠 將容器的8000埠對映到主機的8001埠 iptables tnat adocker ptcp dport 8001 ...