Docker简介,安装,配置

docker是什么

Docker官网: https://www.docker.com/

image-20210104104634435

  • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

docker架构原理

image-20210104104957006

Docker三要素,镜像,容器,仓库

1.镜像

Docker 镜像(Image)就是一个只读的模板,它可以是一个可运行软件(tomcat,mysql),也可以是一个系统(centos)。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

2.容器

Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

3.仓库

仓库(Repository)是集中存放镜像文件的场所,类似GitHub存放项目代码一样,只不过Docker Hub是由来存镜像(image)的。仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag,类似版本号)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象
容器 对象
镜像

docker有什么用

  • 简化环境搭建,提高开发生命周期效率

  • 大大简化运维工作量

  • 微服务利器

docker容器与虚拟机的区别

Docker是一种轻量级的虚拟化技术,比传统的虚拟机性能更好。

下图是虚拟机的体系结构:

image-20210104110636217

  • server - 表示真实电脑。
  • Host OS - 真实电脑的操作系统,例如:Windows,Linux
  • Hypervisor - 虚拟机平台,模拟硬件,如VMWare,VirtualBox
  • Guest OS - 虚拟机平台上安装的操作系统,例如CentOS Linux
  • App - 虚拟机操作系统上的应用,例如nginx

下图是Docker的体系结构:

image-20210104110713177

  • server - 表示真实电脑。
  • Host OS - 真实电脑的操作系统,例如:Windows,Linux
  • Docker Engine - 新一代虚拟化技术,不需要包含单独的操作系统。
  • App - 所有的应用程序现在都作为Docker容器运行。

这种体系结构的明显优势是,不需要为虚拟机操作系统提供硬件模拟。所有应用程序都作为Docker容器工作,性能更好。

Docker容器 虚拟机(VM)
操作系统 与宿主机共享OS 宿主机OS上运行宿主机OS
存储大小 镜像小,便于存储与传输 镜像庞大(vmdk等)
运行性能 几乎无额外性能损失 操作系统额外的cpu、内存消耗
移植性 轻便、灵活、适用于Linux 笨重、与虚拟化技术耦合度高
硬件亲和性 面向软件开发者 面向硬件运维者

Docker优点:轻量级,速度快,运行应用隔离,方便维护...

docker版本介绍

  • Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

  • 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

  • 社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

我们平时用社区版就足够了。所以我们安装社区版;

docker 安装官方文档

我们主要参考:https://docs.docker.com/install/linux/docker-ce/centos/ 来安装;

docker CentOS-7安装步骤

工具准备

安装参考:https://www.runoob.com/w3cnote/vmware-install-centos7.html

这里选择centos7

阿里云下载地址:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/

各个版本iso镜像文件说明:

  1. CentOS-7-x86_64-DVD-2009.iso 标准安装版
  2. CentOS-7-x86_64-Everything-2009.iso 完整版,集成所有软件
  3. CentOS-7-x86_64-Minimal-2009.iso 精简版,自带的软件最少(没有gnome桌面)
  4. CentOS-7-x86_64-NetInstall-2009.iso 网络安装版

我们选个精简版就可以了

基础环境

用ssh工具连接上系统后,要做几件事

  • 检查网络是否正常
ping www.baidu.com

检测即可,不正常的话,自己排查下

  • 切换到root用户

输入下面的命令

su
  • Docker 对 CentOS 系统的内核版本要求

Docker 要求 CentOS 系统的内核版本高于 3.10

通过 uname -r 命令查看你当前的内核版本

例:

[root@localhost makalo]# uname -r
3.10.0-1160.el7.x86_64
  • 将yum包更新到最新
yum update
  • 卸载旧版本docker(如果安装过旧版本的话)

如果安装过旧版本可以用此命令,卸载

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
#设置开机启动
systemctl enable docker

验证docker是否安装成功

执行下面命令,出现下图表示安装成功

docker version

image-20210104154731682

Docker HelloWorld测试

执行

docker run hello-world

执行结果如图

image-20210104155154291

因为本地没有这个镜像,所以从远程官方仓库去拉取,下载

现在已经下载好了,再执行一次

docker run hello-world

image-20210104155332080

ok,HelloWorld运行完毕

Docker HelloWorld运行原理

运行 docker run hello-world

本地仓库未能找到该镜像,然后去远程仓库寻找以及下载该镜像;

然后我们再执行该命令

出来了 Hellowold。我们具体来分析下 执行原理和过程;

image-20210104104957006

从左到右 client客户端,Docker运行主机,远程仓库;

docker build ,pull,run分别是 构建,拉取,运行命令,

中间Docker主机里有 Docker daemon主运行线程,以及Containers容器,容器里可以运行很多实例,(实例是从右侧Images镜像实例化出来的)Images是存储再本地的镜像文件,比如 Redis,Tomat这些镜像文件;

右侧是Registry镜像仓库,默认远程镜像仓库 https://hub.docker.com/ 不过是国外主机,下载很慢,不稳定,所以我们后面要配置成阿里云仓库镜像地址,稳定快捷;

执行 docker run hello-world的过程看如下图例:

image-20210104160005297

docker 配置阿里云镜像

Docker默认远程仓库是 https://hub.docker.com/

比如我们下载一个大点的东西,龟速

由于是国外主机,经常延迟,破损;

所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点

获取镜像地址

登录进入阿里云镜像服务中心,获取镜像地址

进入阿里云容器镜像服务地址:点这里快速进入

使用你的淘宝或支付宝账号登录

image-20210104161521730

设置镜像地址

在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入

registry-mirrors对应的地址就是第一步获取的地址

{
 "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}

重启daemon

systemctl daemon-reload

重启docker服务

systemctl restart docker

查看镜像地址是否修改成功

输入

docker info

如下图表示修改成功

image-20210104164306399

posted @ 2021-01-04 16:47  makalo  阅读(2399)  评论(0编辑  收藏  举报