docker 技术的介绍和安装(一)

文章目录

    • 文章参考
    • why Docker
      • 软件开发环境搭建的问题
      • 解决办法(虚拟机)
      • 解决办法(Linux 容器)
      • 虚拟机 VS linux 容器
    • linux 容器的封装技术 —— Docker
      • Docker 优势
      • Docker 应用场景
      • Docker 概念
    • 安装与启动
      • 安装问题
      • 安装步骤

文章参考

  1. Docker 入门教程 ruanyifeng
  2. Docker 快速入门

why Docker

软件开发环境搭建的问题

软件正常运行依赖操作系统和软件运行的环境,包括:

  1. 操作系统的环境和版本兼容 (centOS6 和 centOS7, windows 和 Linux)
  2. 软件的安装环境和版本兼容 (JDK1.6 和 JDK1.8, tomcat6 和 tomcat8)
    任何一个条件出差错都有可能导致软件无法正常运行

如果换了一台机器,就需要重新安装搭建环境,容易出错而且低效

解决办法(虚拟机)

很好的解决了操作系统的版本和兼容问题,但有如下缺点:

  1. 占用资源多
  2. 冗余步骤多
  3. 启动慢
  4. 创建的个数受到硬件的限制

docker 技术的介绍和安装(一)_第1张图片

解决办法(Linux 容器)

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

由于容器是进程级别的,相比虚拟机有很多优势:

  1. 启动快
  2. 暂用资源少
  3. 体积小

docker 技术的介绍和安装(一)_第2张图片

虚拟机 VS linux 容器

docker 技术的介绍和安装(一)_第3张图片

特性 Docker 虚拟机
启动速度 秒级 分钟级
交付/部署 开发、测试、生产环境一致 无成熟体系
性能 近似物理机 性能损耗大
体量 极小(MB) 较大(GB)
迁移/扩展 跨平台,可复制 较为复杂

linux 容器的封装技术 —— Docker

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker 优势

  1. 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类问题。
  2. 更快速的启动时间:可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
  3. 隔离性:避免公用的服务器,资源会容易受到其他用户的影响。
  4. 弹性伸缩,快速扩展:善于处理集中爆发的服务器使用压力。
  5. 迁移方便:可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
  6. 持续交付和部署:使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。

Docker 应用场景

  1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
  2. 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
  3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

Docker 概念

  1. Docker 服务端

  2. Docker 客户端

  • 只向Docker 容器发送请求(Docker 守护进程)
  1. Docker 镜像
  • 镜像可以当做容器的源码
  • 镜像相当于一个类,容器相当于一个实例对象
  1. 容器
  • 容器相当于一个镜像实例对象
  1. Registry 注册中心
    Docker Hub
    https://hub.docker.com/

安装与启动

测试是使用阿里云的 CentOS 7.X 之上

安装问题

  1. 安装docker遇到:package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
    (参考)[https://www.cnblogs.com/suanmiaoup/p/12772140.html]
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
yum install docker-ce docker-ce-cli containerd.io

安装步骤

1、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update

2、卸载旧版本(如果安装过旧版本的话)

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

3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

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

4、设置yum源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装Docker
sudo yum install docker-ce
  1. 验证
docker -v
  1. 替换docker源地址
sudo vim /etc/docker/daemon.json

注意: 起初是没有这个文件的,需要启动之后才会创建,所以在启动docker 之后再修改文件

{
     
  "registry-mirrors":["https://t88rlg2k.mirror.aliyuncs.com"]
}
  1. 启动
sudo systemctl start docker

验证

systemctl status docker

在这里插入图片描述

  1. 停止
systemctl stop docker

验证

systemctl status docker

在这里插入图片描述

  1. 重启
sudo systemctl restart docker

你可能感兴趣的:(Docker,kubernets,微服务,大数据)