docker介绍与安装

Posted clever-cat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker介绍与安装相关的知识,希望对你有一定的参考价值。

docker介绍

什么是虚拟化

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器,网络,内存及存储等,予以抽象,转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的假设方式,地域或物理组态所限制,一般所指的虚拟化资源包括计算机能力和资料存储

在实际的生成环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化利用物理硬件,对资源充分利用

虚拟化技术种类很多,例如:软件虚拟化,硬件虚拟化,内存虚拟化,网络虚拟化(vip),桌面虚拟化,服务虚拟化,虚拟机等等。

kvm:开源的免费的 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自linux 2.6.20之后集成在linux的各个主要开发版本中

exsi:vmware商用的,装在裸机上,可以虚拟化出很多机器

openstack(python开发的,开源的):电信云,华为云,openstack

阿里云(自研,阿里飞天):云服务器,到一个网站 点点---》付款--》完成

docker:容器技术

k8s:多机容器管理,容器编排

docker是什么

Docker是一个开源项目,诞生于2013年初,最初是

dotCloud 公司内部的一个业余项目。它基于Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker 项目的目标是实现【轻量级的操作系统虚拟化解决方案】。 Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的【容器就像操作一个快速轻量级的虚拟机】一样简单。

容器与虚拟机比较

docker概念

docker是cs架构,mysql,redis,c和s要通信,使用的http协议,符合resful规范

docker镜像:镜像是基于一对文件,相当于虚拟机装了操作系统,又装了软件的一堆文件

docekr容器:镜像运行起来,成为了容器【当成一台虚拟机上面装了一些软件】

类和对象的概念

镜像是类,容器是生成的多个对象

registry(注册中心)

镜像从哪来?

​ 注册中心拉取下来

docker安装

# win:下个软件,一路下一步即可(讲课,真正做练习,不要使用它)
	-https://www.docker.com/products/docker-desktop/
    -一路下一步

# centos:建议你直接在虚拟机中安装
	# 先卸载
    yum remove docker docker-common  docker-selinux docker-engine
	rm -rf /var/lib/docker
    # 安装
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
	sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sudo yum install docker-ce
    
    # 查看版本
    docker -v  # Docker version 23.0.3, build 3e7cbfd

# mac:

docker介绍与应用


一、docker简介

Docker 是一个开源的容器引擎,它有助于更快地交付应用。Docker 可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker , 可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。

二、docker与虚拟机的区别

从概念上来看,Docker和传统的虚拟机比较类似,作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势:
  • 更高效的利用系统资源
    由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。
  • 更快速的启动时间
    传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
  • 一致的运行环境
    开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 「这段代码在我机器上没问题啊」 这类问题。
  • 持续交付和部署
    对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。
    使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment) 系统进行自动部署。
    而且使用 Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。
  • 更轻松的迁移
    由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
  • 更轻松的维护和扩展
    Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。

下面是docker与虚拟机的简单对比图:
在这里插入图片描述
在这里插入图片描述
Docker运行在物理机上与运行在虚拟机上的对比:
在这里插入图片描述


三、docker架构说明

Docker使用C/S体系的架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过unix套接字或网络接口进行通信。

下面是Docker核心组件及元素说明:

  • Docker daemon ( Docker 守护进程 )
    Docker daemon 是一个运行在宿主机 (DOCKER_HOST) 的后台进程。可通过 Docker 客户端与之通信。
  • Client (Docker 客户端)
    Docker 客户端是 Docker 的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon 通信。
  • Images ( Docker 镜像 )
    Docker 镜像是一个只读模板,它包含创建 Docker 容器说明。它和系统安装光盘有点像 —— 使用系统安装光盘可以安装系统,同理,使用 Docker 镜像可以运行 Docker 镜像中的程序。
  • Container (容器)
    容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API 或 CLI 命令来启动、停止和移动、删除容器。
  • Registry ( 注册 )
    Docker Registry 是一个集中存储与分发镜像的服务。构建完 Docker 镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时,就可借助 Docker Registry 来避免镜像的手动复制。
    一个 Docker Registry 可包含多个 Docker 仓库,每个仓库可包含多个镜像标签,每个标签对应一个Docker 镜像。这跟 Maven 的仓库有点类似,如果把 Docker Registry 比作 Maven 仓库的话,那么Docker 仓库就可理解为某 jar 包的路径,而镜像标签则可理解为 jar 包的版本号。
    Docker Registry 可分为公有 Docker Registry 和私有 Docker Registry 。最常用的 Docker Registry 莫过于官方的 Docker Hub, 这也是默认的 Docker Registry 。Docker Hub 上存放着大量优秀的镜像,可使用 Docker 命令下载并使用。
    在这里插入图片描述

四、docker安装与应用

1.docker准备

Docker 官方建议将 Docker 运行在 Linux 操作系统上。当然,Docker 也支持运行在其他平台,例如Windows、MacOS 等。
系统要求
Docker 运行在 CentOS 7.X 之上 (不支持内核在 3.8 以下的老版本)
通过以下命令查看您的 CentOS 内核

uname -r

需要保证Docker安装在 64 位平台

移除非官方软件:
Red Hat 操作系统包含了一个旧版本的 Docker 软件包,该旧版本软件包的名称是 “ docker ”,而新版本是 “ docker-engine ”。因此,如已安装该软件包,那么需要执行以下命令移除。

$ sudo yum remove docker

Tips:执行该命令只会移除旧版本的 Docker , /var/lib/docker 目录中的内容不会被删除,因此,旧版本Docker 所创建的镜像、容器、卷等都会保留下来。
卸载旧版本:

$ sudo yum remove docker \\ 
				  docker-common \\ 
				  docker-selinux \\ 
				  docker-engine

设置 Yum 源:
Docker 有多种安装方式,例如 Yum 安装、PRM 包安装、Shell安装等。以下以 Yum 安装方式进行
Docker 分 Docker EE 和 Docker CE 两种版本(EE:企业版,收费的;CE:社区版,不收费)。
1、安装 yum-utils , 这样就能使用 yum-config-manager 工具设置 Yum 源。

$ sudo yum install -y yum-utils \\ 
  device-mapper-persistent-data \\ 
  lvm2

2、执行以下命令,添加 Docker 的 Yum 源。

$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo

3、【可选】启用测试仓库。测试仓库包含在 docker.repo 文件中,但默认情况下禁用的。
如需启用测试仓库,可使用以下命令:

$ sudo yum-config-manager --enable docker-ce-edge
$ sudo yum-config-manager --enable docker-ce-test

如想要禁用测试仓库,可执行以下命令:

$ sudo yum-config-manager --disable docker-ce-edge

2.docker安装

1、更新 Yum 包的索引

$ sudo yum makecache fast

2、安装最新版本的 Docker

$ sudo yum install docker-ce

3、在生产系统中,可能需要安装指定版本的 Docker ,而并不总是安装最新的版本。
执行以下命令,即可列出可用的 Docker 版本

$ yum list docker-ce --showduplicates | sort -r

列出 Docker 版本后,可使用以下命令安装指定版本的 Docker 。

$ sudo yum install

例如:

$ sudo yum -y install docker-ce-17.09.0.ce

4、启动 Docker

$ sudo systemctl start docker

5、执行以下命令,验证安装是否正确

$ sudo docker run hello-world

6、查看 Docker 版本

docker version

3.docker卸载

1、卸载 Docker 软件包
$ sudo yum remove docker-ce
2、如需删除镜像、容器、卷以及自定义的配置文件,可执行以下命令
$ sudo rm -rf /var/lib/docker

结尾

  • 感谢大家的耐心阅读,如有建议请私信或评论留言。
  • 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新博客,知识共享。

以上是关于docker介绍与安装的主要内容,如果未能解决你的问题,请参考以下文章

docker:docker介绍docker安装

1.Docker的介绍与安装

1.Docker的介绍与安装

docker容器——介绍安装使用流程解读制作镜像与图形化工具

Docker的介绍与部署

docker基本介绍与安装