對docker進一步的理解

簡介

docker簡單可以理解為容器技術,和虛擬機有著相似的概念.但和虛擬機的實現方式全然不同.

1.docker是操作系統級別的虛擬化,而不是隔離宿主機單獨實現硬件環境.
2.docker的鏡像導出更為輕量,一般如vmware導出鏡像后都是3~4G的大小,而docker導出一般在1G左右,具體大小和安裝的功能模塊有關.
3.docker可運行一個機器可運行100個或更多,而虛擬機簡直無法想象.
4.真正實現輕量級的部署,運維,后期可持續.

如最近公司的某小項目部署圖

autochessit部署圖示

如上圖所示,zabbix本需要nginx,等支持才能運行,但只要集成了鏡像,就可以運行為container,輕便而且方便.

2017-10-23更新


容器卷

一般的容器內部的數據改變,比如在container里運行一個ubuntu鏡像,在ubuntu中創建文件夾/安裝軟件/更改內容,這樣的對系統的存儲的改變,會持久化到container,此時commit為新的image,后運行新的image為container,可以看到之前的持久化操作都保留下來了.

而mysql-server存儲的數據不相同,如果不指定mysql的物理存儲地址,如下:
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql

這樣只是將name=mysql的image運行為name=mysql的container,而它存儲數據庫等信息,由docker默認指定物理位置,可以用docker inspect containerid來查看詳細的信息.

如果要將mysql數據庫遷移,這就要用到容器卷的管理.
運行時設置數據庫存儲地址:
docker run --name mysql -p 3306:3306 -v /opt/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql

  • mysql數據庫遷移
    • 一般的遷移,直接dump導出,然后導入
    • 共享數據庫文件夾,分布式,如上面運行的設置為/opt/mysql,在其他主機依然可以使用此數據庫文件地址,只是要考慮網絡性能.

2017-10-24更新


容器技術的本質

容器技術最早原型
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容