Docker | 虚拟容器技术
什么是Docker ?
当然最权威的方法就是上官网,查看技术文档,如下图:
给大家翻译一下:
标准化的软件单元
一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。
Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。
比如我们在本地Window上开发一个Java web程序,我们需要提交代码到Linux服务器给运维运行,那么运维人员需要在Linux上安装JDK、tomcat、各类依赖包等资源,光是安装配置就挺费事的,如果需要在多台Linux服务器上运行,移植应用也很麻烦,显然效率很低,而且容易出错。
而Docker的理念则是“一次封装,多次运行”,把开发的全部配置文件连同运行环境自下而上打包成镜像,然后镜像实例为容器,再运行就行了。
Docker的主要技术:
- 镜像技术
镜像用images表示,镜像可以自己生成,也可以从docker-hup官网或阿里云等远程仓库上pull到本地,再把镜像实例化为一个容器来运行。
docker中镜像相对于容器就类似于java中的类相对于对象,一个镜像可以对应多个容器。
- 容器数据卷
当我们要保存一个容器运行的数据时,就可以使用容器卷将本地的目录挂载到容器内的目录实现数据的同步。
数据卷有两种添加方式:
1)可以在命令run容器的时候添加 -v /宿主机目录:/容器目录
2)可以在编写DockerFile用VOLUME给镜像添加一个或多个容器卷
DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
这里再补充一点,Docker-hup有点类似于GitHup,都是开源公开的,如果要下载用pull指令,上传用push。
以上是笔者对Docker基础的简单介绍,当然Docker的强大之处还有很多,如果有兴趣深入的话,欢迎关注公众号( java_developers)一起学习,后续会更新学习资料共享。
扫描二维码或关注 “极客Java” 可以免费 下载 领取Java学习路线和全套学习资料