偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5321字,纯文字阅读大概需要8分钟。
内容图文
![偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装](/upload/InfoBanner/zyjiaocheng/1035/f5e8e316e2124aad86f5e1febb74d4c8.jpg)
文章目录
一、初识 Docker
1.Docker 概述
Docker 是在 Linux 容器里运行应用的一种开源工具,是一种轻量级的虚拟机,诞生于 2013 年
Docker 项目加入了 Linux 基金会,全部开源代码均在 https://github.com/docker 上进行维护,官网为 https://www.docker.com/,Docker 与 OpenStack 同为最受欢迎的云计算开源项目
![偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装 - 文章图片](/upload/getfiles/0001/2021/5/19/20210519050312967.jpg)
Docker 的 Logo 设计为蓝色的鲸鱼,拖着许多集装箱,如上图所示,鲸鱼可以看做是宿主机,集装箱可以理解为是相互隔离的容器,每个集装箱内都有自己的应用程序
Docker 的设计理念:Build、Ship and Run Any APP,Any where,即通过对应用组件的封装、发布、部署和运行等生命周期的管理,达到应用组件级别的“一次封装、到处运行”的目的
这里的组件,可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统
2.Docker 容器与传统虚拟化的比较
①Docker 的优点
-
有没有这样一种技术,能够方便地创建运行在云平台上的应用,可以脱离底层的硬件支持,且在任何时间任何地点均可获取这些资源?(Docker!)
-
Doker 的容器技术可以在一台主机上轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器,通过容器来打包应用程序,简化了重新部署、调试这些琐碎的重复工作,极大的提高了工作效率!
-
例如:需要把服务器从腾讯云迁移到阿里云,如果采用的是 Docker 容器技术,整个迁移的过程只需要在新的服务器上启动我们需要的容器就可以了
②Docker 与传统虚拟机相比具有显著的优势
- Docker 容器的启动与停止可以在秒级实现
- Docker 核心解决的问题是利用容器来实现类似 VM 的功能,实现以更加节省的硬件资源提供给用户更多的计算资源
- Docker 容器除了运行其中的应用之外,基本不消耗额外的系统资源,在保持性能的同时,有效地减少了系统开销,使得能在一台主机上运行数千个 Docker 容器
- Docker 运行方便,可以通过 Dockerfile 配置文件支持灵活的自动化创建和部署
更直观的总结表如下
特性 | Docker 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
计算能力损耗 | 几乎无 | 损耗50%作用 |
性能 | 接近原生 | 弱于 |
系统支持量(单机) | 上千个 | 几十个 |
隔离性 | 资源限制 | 完全隔离 |
Docker 拥有的众多优势与操作系统虚拟化的特点是分不开的:
- 传统虚拟机需要有额外的虚拟机管理程序和虚拟机操作系统层
- 而 Docker 容器是直接再操作系统层面之上实现的虚拟化
![偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装 - 文章图片](/upload/getfiles/0001/2021/5/19/20210519050313474.jpg)
二、Docker 的核心概念及安装
1.镜像(Image)
Docker 镜像是创建容器的基础,类似于虚拟机的快照
可以理解为是一个面向 Docker 容器引擎的只读模板,比如:
- 一个镜像可以是一个完整的 CentOS 操作系统环境,称之为一个 CentOS 镜像
- 一个安装了 MySQL 的应用程序,称之为是一个 MySQL 镜像
- …
Docker 提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜像来直接使用,好强大啊!
2.容器(Container)
Docker 的【容器】是【从镜像创建的运行实例】,它可以被【启动、停止和删除】
- 创建的每一个容器都是相互隔离、互不可见的,相互之间隔离性超强,从而保证平台的安全性
- 可以把容器看做是一个简易版本的 Linux 环境,Docker 可以利用容器来运行和隔离一个个应用
3.仓库(Repository)
Docker 仓库时用来集中保存镜像的地方
- 创建完自己的镜像后,可以使用【push】命令将其上传至【公共仓库(public)】或【私有仓库(Private)】
- 之后,在另一台机器上使用这个镜像,直接【pull】下来就可以了,不要太方便!
仓库注册服务器【Registry】是存放仓库的地方,其中包含了多个仓库,每个仓库存放某一类镜像,并使用不同的标签【tag】来区分它们
目前最大的公共仓库是【Docker Hub】
4.安装 Docker
Docker 支持在主流的操作系统平台上使用,比如:Windows、Linux 和 MacOS 系统
官方 docker 安装技术文档:https://docs.docker.com/engine/install/centos/
阿里云 docker 安装技术文档:https://developer.aliyun.com/article/110806
还是建议看看这些技术文档的!
systemctl stop firewalld
systemctl disable firewalld
setenfoce 0
--
#在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker
#设置存储库,安装yum-utils软件包(提供yum-config-manager实用程序)并设置稳定的存储库
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
--
## 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息
#例如,docker-ce 17.03 之后,需要先安装docker-ce-selinux!
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--
#安装最新版本的Docker Engine和容器
yum install -y docker-ce docker-ce-cli containerd.io
--
#启动docker
systemctl start docker
systemctl enable docker
--
#通过运行hello-world映像来验证是否正确安装了Docker Engine
sudo docker run hello-world
--
#检查docker版本
docker version
![偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装 - 文章图片](/upload/getfiles/0001/2021/5/19/20210519050314004.jpg)
![偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装 - 文章图片](/upload/getfiles/0001/2021/5/19/20210519050314241.jpg)
安装好的 Docker 有两个程序:Docker 服务端和 Docker 客户端
- Docker 服务端是一个服务进程,管理所有的容器
- Docker 客户端是 Docker 服务端的远程控制器,可以用来控制 Docker 的服务端进程
- Docker 服务端和客户端在大多数情况下是运行在一台及其上的
5.如何安装特定版本的 Docker?
若安装或更新的始终是最高版本,可能满足不了关于稳定性的需求
我们可以在存储库中列出可用版本,看看都有哪些版本:
#列出并排序存储库中可用的版本,按按版本号(从高到低)对结果进行排序,并被截断
yum list docker-ce --showduplicates | sort -r
...
...
--
#卸载Docker Engine,CLI和Containerd软件包
yum remove -y docker-ce docker-ce-cli containerd.io
#主机上的映像,容器,卷或自定义配置文件不会自动删除,要删除所有图像,容器和卷
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
#注:必须手动删除所有已编辑的配置文件
--
#例:【docker-ce-18.09.1】
sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
systemctl start docker
docker version
![偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装 - 文章图片](/upload/getfiles/0001/2021/5/19/20210519050314533.jpg)
1 containerd.io
systemctl start docker
docker version
<img src="/upload/getfiles/0001/2021/5/19/20210519050314533.jpg" alt="mark" style="zoom:67%;" />
内容总结
以上是互联网集市为您收集整理的偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装全部内容,希望文章能够帮你解决偷偷学 Docker 系列(一) | Docker 概述 | Docker 与传统虚拟化的比较 | Docker 的核心概念及安装所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。