Docker精華問答 | 資料庫為什麼不適合放在 Docker 中運行?

2019-05-20     科技百分百

戳藍字「CSDN雲計算」關注我們哦!

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。今天就讓我們一起看看關於Docker 的精華問答吧。

1

Q:為什麼說資料庫不適合放在 Docker 容器里運行?

A:不為什麼,因為這個說法不對,大部分認為資料庫必須放到容器外運行的人根本不知道 Docker Volume 為何物。在早年 Docker 沒有 Docker Volume 的時候,其數據持久化是一個問題,但是這已經很多年過去了。現在有 Docker Volume 解決持久化問題,從本地目錄綁定、受控存儲空間、塊設備、網絡存儲到分布式存儲,Docker Volume 都支持,不存在數據讀寫類的服務不適於運行於容器內的說法。Docker 不是虛擬機,使用數據卷是直接向宿主寫入文件,不存在性能損耗。而且卷的生存周期獨立於容器,容器消亡卷不消亡,重新運行容器可以掛載指定命名卷,數據依然存在,也不存在無法持久化的問題。

2

Q:如何列出容器和所使用的卷的關係?

A:要感謝強大的 Go Template,可以使用下面的命令來顯示:

3

Q:docker pull 下來的鏡像文件都在哪?

A:初學 Docker 要反覆告誡自己,Docker 不是虛擬機。Docker不是虛擬機,Docker 鏡像也不是虛擬機的 ISO 文件。Docker 的鏡像是分層存儲,每一個鏡像都是由很多層,很多個文件組成。而不同的鏡像是共享相同的層的,所以這是一個樹形結構,不存在具體哪個文件是 pull 下來的鏡像的問題。

具體鏡像保存位置取決於系統,一般Linux系統下,在 /var/lib/docker 里。對於使用 Union FS 的系統(Ubuntu),如 aufs, overlay2 等,可以直接在 /var/lib/docker/{aufs,overlay2} 下看到找到各個鏡像的層、容器的層,以及其中的內容。但是,對於CentOS這類沒有Union FS的系統,會使用如devicemapper這類東西的一些特殊功能(如snapshot)模擬,鏡像會存儲於塊設備里,因此無法看到具體每層信息以及每層裡面的內容。

需要注意的是,默認情況下,CentOS/RHEL 使用 lvm-loop,也就是本地稀疏文件模擬塊設備,這個文件會位於 /var/lib/docker/devicemapper/devicemapper/data 的位置。這是非常不推薦的,如果發現這個文件很大,那就說明你在用 devicemapper + loop 的方式,不要這麼做,去參照官方文檔,換 direct-lvm,也就是分配真正的塊設備給 devicemapper去用。

4

Q:docker images 命令顯示的鏡像占了好大的空間,怎麼辦?每次都是下載這麼大的鏡像?

A:這個顯示的大小是計算後的大小,要知道 docker image 是分層存儲的,在1.10之前,不同鏡像無法共享同一層,所以基本上確實是下載大小。但是從1.10之後,已有的層(通過SHA256來判斷),不需要再下載。只需要下載變化的層。所以實際下載大小比這個數值要小。而且本地硬碟空間占用,也比docker images列出來的東西加起來小很多,很多重複的部分共享了。

5

Q:為什麼 Docker Hub 的鏡像尺寸和 docker images 不一致?

A:Docker Hub上顯示的是經過 gzip 壓縮後的鏡像大小,這個大小也是你將下載的鏡像大小,一般來說也是 Docker Hub 用戶最關心的大小。而 docker images 顯示的是pull下來並解壓縮後的大小,因為使用docker images的時候更關心的是本地磁碟空間占用的大小,所以這裡顯示的是未壓縮鏡像的大小。

小夥伴們沖鴨,後台留言區等著你!

關於Docker,今天你學到了什麼?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……

同時歡迎大家搜集更多問題,投稿給我們!風裡雨里留言區里等你~

福利

1、掃描添加小編微信,備註「姓名+公司職位」,加入【雲計算學習交流群】,和志同道合的朋友們共同打卡學習!

2、公眾號後台回覆:白皮書,獲取IDC最新數據白皮書整理資料!

推薦閱讀:

  • 刷了一個半月算法題,我薪資終於Double了

  • 掌聲送給TensorFlow 2.0!用Keras搭建一個CNN | 入門教程

  • 中國AI開發者真實現狀:寫代碼這條路,會走多久?

  • 520 這天,我突然意識到,她根本配不上我這麼聰明的男人

  • 厲害!女學生偷師男子學校,變身區塊鏈開發工程師

  • 確實, 5G與物聯網離不開區塊鏈!

  • Linux 之父:我就是覺得蘋果沒意思!| 人物誌

真香,朕在看了!

文章來源: https://twgreatdaily.com/zh-tw/IN2xPGwB8g2yegNDMjKw.html