Docker学习笔记——(一)docker简介与docker安装
Docker简介与安装
-
1. Docker简介
-
- docker是什么?
- docker架构原理
- docker有什么用?
- docker容器与虚拟机的区别
-
-
-
- 虚拟机与Docker的体系结构说明:
-
- 整体对比:
-
-
2. Docker 安装
-
- Docker 版本说明
-
Docker 安装官方文档
-
(针对 CentOS 7.5 系统的) Docker 安装教程
-
配置阿里云镜像
-
镜像的抽象层次分析
ps: 这份学习笔记源自我观看docker相关视频时所做的笔记,请大家参考分享!
其中部分内容参考自java1234博主——小锋老师的博客。
百度网盘提供docker教学视频的下载地址为提取码:mpzh,此提取码仅用于访问该资源。
1. Docker简介
docker是什么?
Docker是一个开放源代码的应用容器引擎,基于Go语言,遵循Apache 2.0协议开放源代码.它允许开发者将应用程序及其依赖项打包到一个轻量化且具有移植性的容器中,方便部署在各种主流Linux设备上,并支持虚拟化运行.这些容器完全基于沙箱机制运行,彼此之间没有任何交互接口(类似于iOS应用程序),并且具有极低的性能开销.从17.03版本开始,Docker分为CE版(社区版)和EE版(企业版),我们目前采用的是社区版本.
docker架构原理

在Docker框架中,其三个核心要素分别为镜像、容器与仓库。具体而言,在Docker环境中,
镜像 在其定义上即为一个只读模板文件(Image),该文件包含了构建特定软件环境所需的所有信息。
它既可以作为运行软件(如tomcat、mysql)的基础配置,
也可以作为操作系统(如centos、ubuntu)的底层架构。
此外,在构建过程中,
镜像 作为一个静态资源能够被多次调用,
从而实现快速部署多个相同的环境实例,
即所谓的多个Docker容器实例。
容器
Docker采用容器技术来独立运行一组应用程序。容器基于镜像构建的运行实例能够被启动、启动、停止和删除。每一个容器都是完全独立且安全隔离的平台,并且具备类似于Linux系统的root账户权限(包括进程空间、用户空间和网络空间)。这些容器不仅在定义上与镜像高度一致,在架构设计上也采用了多层分层的理念。唯一的区别在于顶层是具有可读性和写入性的特殊设计层。
镜像存储位置
Mirror(镜子)是一个专门用于存储镜像文件的位置,在形式上类似于Git存储项目代码那样操作,在此系统中是由Docker Hub负责存储镜像(Image)。Mirror与Registry(注册服务器)是有区别的。Mirror中通常会包含多个独立的存储单元( tank),每个单元内部又包含了多个镜像体(Image),每个镜像体都有其独特的标签(tag),类似于版本号标识符。
Mirror分为公共Mirror和私有Mirror两种类型。
其中最著名的公共Mirror是Docker Hub(https://hub.docker.com/),它拥有海量的镜像供用户下载使用。而国内也有若干家开放性的公共Mirror平台可供用户访问。
docker有什么用?
- 简化环境搭建,提高开发生命周期效率
- 大大简化运维工程
- 微服务利器
docker容器与虚拟机的区别
虚拟机与Docker的体系结构说明:
虚拟机的结构体系:

| 体系 | 说明 |
|---|---|
| APP | 虚拟机操作系统上的应用,例如nginx |
| Guest OS | 虚拟平台上安装的操作系统,例如Centos Linux |
| Hypervior | 虚拟机平台,模拟硬件,例如VMWare, VirtualBox |
| Host OS | 真实电脑的操作系统,例如:windows,Linux |
| server | 表示真实电脑 |
| – | – |
Docker结构体系:

| 体系 | 说明 |
|---|---|
| APP | 所有的应用程序现在都作为Docker容器运行 |
| Docker Engine | 新一代虚拟技术,不需要包含单独的操作系统 |
| Host OS | 真实电脑的操作系统,例如:windows,Linux |
| server | 表示真实电脑 |
| – | – |
整体对比:
| Docekr容器 | 虚拟机(VM) | |
|---|---|---|
| 操作系统 | 与宿主机共享OS | 宿主机OS上运行宿主机OS |
| 存储大小 | 镜像大小,便于存储与传输 | 镜像大小(vmdk等) |
| 运行性能 | 几乎无额外性能损失 | 操作系统额外cpu/内存消耗 |
| 移植性 | 轻便、灵活、适用于Linux | 笨重、与虚拟化技术耦合高 |
| 硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
2. docker安装
docker版本介绍
自1.13版本起,Docker开始使用时间线作为版本号,并分为两个系列:社区版和企业级增强型版本。
社区版将gratis offer给个人开发者及小型团队使用;企业版则将提供更多额外的付费服务,并包括经官方认证通过的基础设施、软件组件以及插件。
该平台采用稳定版与测试版两种发布模式。每隔季度就推出新的稳定版;例如2017年6月、9月就会有稳定版本的发布。每月则会发布测试版;如2017年9月、October也会有测试版本的更新。
我们使用社区版就够了,所以我们安装社区版。
docker安装官方文档
docker安装(基于centOS7.5)
安装Docker到CentOS系统时,请确保所使用的CentOS系统的内核版本高于3.10,并通过执行命令 uname -r 来确认当前内核版本。
uname -r
使用root权限登录Centos,确保yum包更新到最新
yum update
卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
安装必要的软件包,yum/util支持yum-config-manager功能,另外两个工具是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装最新版本的docker
yum install docker-ce docker-ce-cli containerd.io
启动Docker并设置开机启动
systemctl start docker 启动docker
systemctl enable docker 设置开机docker自动启动
验证Docker
docker version

Docker helloWorld测试
docker run hello-world
docker配置阿里云镜像
步骤:
1.登录阿里云,查找“容器镜像服务”,点击进去。
2.在“镜像中心”分类中,点击“镜像加速器”
在CentOS系统中,在/etc/docker目录内查找daemon.json文件(若不存在则需新建;初次操作时通常未存在)。随后将以下配置写入容器注册镜像源列表:{“registry-mirrors”:[“https://xxxxxx.mirror.aliyuncs.com”]}

4.重启daemon
systemctl daemon-reload
5.重启docker服务
systemctl restart docker
6.测试
docker info

镜像的抽象层次

说明如下:
在一个镜像中,并非所有的组件都运行良好;例如,在某些配置下,默认情况下无法启动Tomcat服务。能够正常运行的应用程序或系统均基于轻量级Linux内核设计;即采用微内核架构。Tomcat运行时需要JDK支持;而Tomcat服务则位于整个架构的核心位置。
