浅谈Docker入门

来源:互联网 发布:mc1413 数据手册 编辑:程序博客网 时间:2024/05/29 04:02

什么是Docker?

docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的,可移植的,自给自足的容器。开发者和系统管理员在笔记本上便已测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机),bare metal,OpenStack集群,云端,数据中心和其它的基础应用平台。


tainer

虚拟技术 VS Docker


Docker不是虚拟化技术的颠覆者,Docker容器和虚拟化技术是互补、双赢的。Docker是一种轻量级的操作系统虚拟化方案,利用虚拟机提供弹性基础架构,更好的安全隔离,动态热迁移,可以更好的保证业务的安全性和连续性,而利用容器技术也可以简化迁云之路,实现无边界的云计算。


Docker为什么这么火?

Docker最大的价值不在于技术,而在于它使人们达成了某种共识,以一种标准化的方法来开发、交付和运维软件,使得把我们的应用和应用运行过程中的依赖打成Docker镜像,通过Docker镜像,我们可以在开发、测试、线上等各个阶段来使用,我们也可以在笔记本、测试机或是云上来运行程序。通过这个标准化,催生了一个巨大的生态,让Docker具有巨大的价值。

Docker的核心亮点有以下几个方面:

  • 敏捷:秒级应用启动、轻量级隔离、细粒度资源控制、低性能损耗。
  • 可移植性: 环境无关的交付、部署方式;可用于软件生命周期中不同运行环境。
  • 可控:标准化推动自动化,提高运维效率和规模;隔离性提升应用安全性;版本管理可追溯。

Docker初学者的迷惑

   从我自身学习的角度以及周围朋友的反馈可以总结出,大部门人在学习Docker的过程中其实对于docker的镜像仓库,镜像和容器的相关概念分不清楚,甚至有人认为Docker就是个虚拟机,其实不然。

   容器可以理解为一个最基础的APP或者Web站点软件,而镜像可以理解为这个软件发布和运行所依赖的环境,镜像仓库就是存放镜像的Repository,镜像仓库分为公有仓库和私有仓库。通常我们下载docker镜像是从https://hub.docker.com/ 上下载我们所需要的镜像。

   再具体点来讲,举个例子来讲,我们在Windows环境下使用Java开发出一个Web“博客”系统(就可以当做一个docker容器),而测试和生产环境一般都为Linux环境,这个时候我们就需要从Docker hub上下载一个我们开发方认为的比较合适的Linux镜像到本地虚拟服务器上,然后将该博客系统上传到该Linux镜像中,并下载相应的JDK,Tomcat,mysql等镜像环境。然后将这个被修改过的Linux镜像打包并启动。就可以对外提供访问服务。

   镜像仓库,镜像和容器间的关系如下:

   


在虚拟服务器上查看本地docker镜像:

     执行命令 docker images

      

  从docker hub上下载一个mongo镜像

   

 

 启动Mongo镜像并查看容器IP信息

 

 每一个docker容器互相之间为了进行通信,都有自己独立的网络配置。

 关于Docker的入门介绍就到这里了,有兴趣的同学可以和我互相讨论。