对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更新


容器技术的本质

容器技术最早原型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容