一、什么是云原生?
技术的变革,一定是思想先行,云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,Cloud+Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。
Pivotal公司的Matt Stine于2013年首次提出云原生(CloudNative)的概念;2015年,云原生刚推广时,Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:12因素、微服务、自敏捷架构、基于API协作、扛脆弱性;到了2017年,Matt Stine在接受InfoQ采访时又改了口风,将云原生架构归纳为模块化、可观察、可部署、可测试、可替换、可处理6特质;而Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器。
云原生是一种构建和运行程序的方法,是一套技术体系和方法论!
二、什么是Docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的或操作系统的机器上,也可以实现。容器是完全使用机制,相互之间不会有任何接口。
Docker官网
Docker是一个开源的应用容器引擎!
三、Docker的好处
☁️模块化
Docker 容器化方法非常注重在不停止整个应用的情况下 ,单独截取部分应用进行更新或修复的能力。除了这种基于微服务的方法,您还可以采用与面向服务的架构(SOA)类似的使用方法,在多个应用间共享进程。
⛅层和镜像版本控制
每个 Docker 镜像文件都包含多个层。这些层组合在一起,构成单个镜像。每当镜像发生改变时,就会创建一个新的镜像层。用户每次发出命令(例如 run 或 copy)时,都会创建一个新的镜像层。
Docker 重复使用这些层来构建新容器,借此帮助加快流程构建。镜像之间会共享中间变化,从而进一步提升速度、规模以及效率。版本控制是镜像层本身自带的能力。每次发生新的更改时,您大都会获得一个内置的更改日志,实现对容器镜像的全盘管控。
❄️回滚
回滚也许是层最值得一提的功能。每个镜像都拥有多个层。举例而言,如果您不喜欢迭代后的镜像版本,完全可以通过回滚,返回之前的版本。这一功能还支持敏捷开发方法,帮助持续实施集成和部署(CI/CD),使其在工具层面成为一种现实。
⚡快速部署
启动和运行新硬件、实施部署并投入使用,这在过去一般需要数天时间。投入的心力和成本往往也让人不堪重负。基于 Docker 的容器可将部署时间缩短到几秒。通过为每个进程构建容器,您可以快速将这些类似进程应用到新的应用程序中。而且,由于无需启动操作系统即可添加或移动容器,因此大幅缩短了部署时间。除此之外,得益于这种部署速度,您可以轻松无虞、经济高效地创建和销毁容器创建的数据。
因此,Docker 技术是一种更加精细、可控、基于微服务的技术,可为企业提供更高的效率价值。
四、Linux下安装Docker
⌛环境准备
查看Linux系统内核
uname -r查看系统配置
cat /etc/os-release系统为CentOS 7 最好!
♻️安装Docker
先查看本机是否存在Docker,删除旧版本Docker查看docker 版本
docker version没有docker,我们执行以下命令,删除残余文件
yum remove docker \docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
进入Linux根目录,安装Docker
# 安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的存储库。yum install -y yum-utils
# 安装阿里云配置
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker 最新引擎
yum install docker-ce docker-ce-cli containerd.io输入y确认即可!
✂️配置阿里云加速镜像
打开阿里云控制台,弹性计算 --> 容器与镜像服务打开之后选择 镜像工具 --> 镜像加速器,复制内容即可
进入Linux服务器根据步骤配置镜像加速器
# 创建docker文件夹sudo mkdir -p /etc/docker
# 打开文件并配置内容
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://pfjide5p.mirror.aliyuncs.com"]
}
EOF
# 重启服务
sudo systemctl daemon-reload
# 启动docker
sudo systemctl restart docker
新建文件夹配置内容,并重启服务根据步骤一步步创建即可!
✅测试启动Docker
查看Docker启动状态
systemctl status docker查看Docker版本,没有发生错误就是启动成功!运行 hello-world镜像
docker run hello-world可以看到没有在本地没有找到镜像 hello-world,docker会去远程仓库 DockerHub下载镜像!
下载完毕后查看镜像文件
docker images五、Docker常用命令
Docker常用API