1、了解Docker
例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等
这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突,容易出现兼容性问题。公司开发、测试、生产环境有差异,给部署带来了极大的困难。而Docker刚好解决这些问题。
1.1 什么是Docker?
Docker 是一个开源的应用容器引擎。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
1.2 Docker的优点
更快速的启动时间
快速,一致地交付您的应用程序
响应式部署和扩展
在同一硬件上运行更多工作负载
1.3 Docker的应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
总结
这里用公司数据中心和Docker比较,让我们快速理解Docker
数据中心 Docker
N台服务器 N个容器
不同类型的操作系统 直接复用本地主机的操作系统
依赖关系复杂,开发、测试、生产环境有差异,容易出现兼容性问题 可以在不同的环境中运行
启动应用时间长 可以做到秒级,甚至毫秒级的启动时间
价格昂贵,在同一硬件上不能运行更多工作负载,资源过剩 在同一硬件上运行更多工作负载,提供了可行、经济、高效的替代方案
2、Docker 架构
Docker 包括3个基本概念:
镜像(Image):
Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。
容器(Container):
容器是独立运行的一个或一组应用,是镜像运行时的实体。
仓库(Repository):
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。
另外也包括Docker 主机(Host)和Docker Machine
Docker 主机(Host)
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker Machine
Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、Digital Ocean、Microsoft Azure。
3、Docker 坏境搭建
3.1 准备工作(已有 Linux 环境可省略)
在这里我们用 VM 虚拟机 + CentOS 的环境进行 Docker 部署
首先准备一台 CentOS 系统的虚拟机,可以看到主机的 IP 地址为 192.168.79.139;
为了更加直观,我将使用 Xhell 6 连接虚拟机进行操作演示:
3.2 安装Docker
Docker 支持以下的 64 位 CentOS 版本:
CentOS 7
CentOS 8
更高的版本
第一步:卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y
1
第二步:yum 包更新到最新
yum update -y
1
第三步:安装所需的软件包
yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
1
第四步:设置 yum 源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1
第五步:安装 Docker
yum install docker-ce -y
1
第六步:检查 Docker 版本
docker -v
1
使用 docker -v 命令可以查看到版本号即说明安装成功。
至此,Docker坏境搭建完成