一、理念
docker是基于Go语言实现的云开源项目,Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。这解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
二、优势
更高效的利用系统资源、更快速的启动时间、一致的运行环境、持续交付和部署、更轻松的迁移、更轻松的维护和扩展;
对比传统虚拟机
三、镜像(Image)与容器(Container)
1、镜像(Image)
和大多数虚拟化技术一样,Docker也有镜像的概念,镜像是运行虚拟环境的基础,也是迁移虚拟环境的强大工具。
2、容器(Container)
镜像和容器的关系,就像面向对象中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体,容器可以被创建、启动、停止、删除等。
四、Dockerfile和Docker-compose
1、Dockerfile
通俗理解,Dockerfile就是制作docker镜像的文本文件,主要用于制作你自定义的镜像,具体编写格式网上查询即可,这里只做简单介绍
示例:docker build -f /path/Dockerfile (Dockerfile文件路径) -t docker_web_pc:1.0 .
-f 指定Dockerfile文件路径
-t 指定镜像名称和版本
2、Docker-compose
Docker-compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器,也就是进行容器编排,具体编写格式网上查询即可,这里只做简单介绍。
总结:
docker容器就像是很小的linux系统,里面配置好运行环境和应用程序,不会造成系统环境混乱等等;容器之间互不干扰,独立存在,在不同环境下也能进行快速部署。