一, 前言
5W1H 法则是在一次面试中学习到的, 后来在工作也开始使用这种东西, 虽然最后没去那家公司, 但是也是学习到了, 关注开这些东西以后, 也发现了一些简化版的 3W 法则, 最近公司也要搞 Docekr, 所以写篇博客来说说为什么要学习 Docker.
二, What Docker
什么是 Docker?Docker 是一种容器化的技术, 包括一个命令行程序, 一个后台守护进程以及一组远程服务, 使应用程序在不同的操作系统上以相同的方式运行, 所以要明白什么是 Docker 我们还需要来聊聊容器的概念.
容器是为应用程序提供隔离的运行空间, 每个容器内部都包含一个独享的完整用户环境空间, 并且容器内的变动不会影响其他容器的运行. 这个时候我们又会想到传统的虚拟化技术他也是一种容器化的技术, 接下来我们拿两者做个比较.
对于传统虚拟化技术 (虚拟机), 提供一套完整的操作系统, 可以为每个用户指定 CPU, 内存等资源, Docker 则是使用 namespaces 来进行空间隔离, 通过文件系统的挂载点来决定容器可以访问哪些文件, 通过 cgroups 来确定每个容器可以利用多少资源, 所有的容器共享一个操作系统内核. 两者相比较起来 Docker 更轻量级些, 相比传统的虚拟化技术来说对系统资源运用的更加充分.
总结下就是, Docker 是为应用软件提供运行空间, 以及将应用软件直接相互隔离, 来提升安全性;
三, Why Docker
为什么需要 Docker? 我认为应该 3 方面说起:
1. 服务端的开发和部署
对于开发和运维人员来说, 现在每天面对各种各样的中间件, 各种服务的部署, 单纯依靠以前的手动部署已经不能满足现状, Docket 可以通过定制镜像, 来实现一次性创建或配置, 可以在任意地方正常运行, 使得开发人员和运维人员解放双手, 另外 Docker 构建和启动很快, 能大量节约开发, 测试和部署时间. 服务化的今天如果没有 Docker 大家可能也没有这么顺风顺水.
2. 更高效的利用资源
Docker 相比于传统的虚拟化技术来说不需要运行完整的操作系统, 可以理解为进程级的, 在同等的情况下可以对系统资源更高效的利用;
3. 易用性和扩展性
Docker 使用起来很简单, 没有想虚拟化技术那般费劲, 简单的一个命令就能运行起来服务, 使得这项技术更加的流行. Docker 采用分层存储和镜像技术, 使应用的维护和扩展变得非常简单, 另外 Docker 官方维护很多镜像, 让大家降低了应用镜像制作的成本;
四, How Docker
这篇博客先从环境搭建然后到 Hello World, 下一篇文章带领大家做一个 spring boot 连接数据库, 最后补上之前说的 Elasticsearch 集群搭建 (包括 Elasticsearch 一些参数调优, 监控, 集群测试), 中间也会穿插一些镜像, 容器, 网络和存储等等这些 Docker 中的知识, 先来启动 Hello World
安装环境实在腾讯云上的 CentOS 7 的版本, 通过 yum 命令来安装 Docker,Docker 要求 CentOS 系统的内核版本高于 3.10 , 查看本页面的前提条件来验证你的 CentOS 版本是否支持 Docker .
- # 查看你当前的内核版本
- uname -r
- #安装 Docker
- yum -y install docker
- #启动 Docker 后台服务
- service docker start
- #查看 docker 版本
- docker -v
- View Code
接下来我们来启动一个 Hello World, 这里我们暂时不通过 Dockerfile 的形式去做, 通过 Docker 仓库来实现将 Hello World 运行出来,
1.docker search hello-world 先搜索关于 hello-world 的镜像
2.docker pull hello-world 拉取 hello-world 的镜像到本地服务器
3.docker run hello-world 运行容器
这里就是带大家完成一个从仓库拉取到本地镜像的一个例子, 相信使用过 Git 都比较清楚, 通过上面的例子相信大家已经体验 Docker 的易用性, 接下来会有更详细的使用介绍;
五, 结束
欢迎大家加群 438836709! 欢迎大家关注我!
来源: https://www.cnblogs.com/wtzbk/p/11036083.html