天天看点

10.1(Docker)初识安装Docker初识Docker的安装

文章目录

  • Docker初识
    • 为什么会出现Docker
    • 什么是Docker
      • 之前的虚拟化技术
      • 容器虚拟化技术
        • Linux容器
    • Docker的三要素
      • 镜像
      • 容器
      • 仓库
      • 小结
  • Docker的安装
    • 卸载Docker
    • 安装
      • 更新yum包
      • 安装需要的软件包
      • yum设置Docker的仓库
      • yum查看Docker可用版本
      • 启动Docker并设置开机自启
    • 配置自己的阿里云镜像
      • 登录或注册阿里云Docker
      • 阿里云的Centos安装法
      • 测试
      • run做了什么
    • Docker的原理简介
      • Docker是怎么工作的
      • 为什么Docker比VM执行快
        • 什么是Hypervisor?

Docker初识

为什么会出现Docker

一个程序在进行迁移的时候。需要保证的条件很多才能正常的执行。

最难把控的就是环境配置每个机器上基本上都不一样。

Docker可以从系统环境开始,自底至上完整打包。

什么是Docker

Docker是基于Go语言实现的云开源项目。

Docker主要目标 Build,Ship and Run Any App,Anywhere 一次封装,到处运行。

Linux的容器技术的出现,Docker在它的基础上发展过来的。

将应用运行在Docker容器上,而Docker容器在任何操作系统上都是一致的。就实现了跨平台,跨服务器。

只需要一次配置好环境,到别的机子上就可以意见部署

java的技术我们都知道,最后都是要在Linux中进行执行的。

JDK,数据库,redis,Tomcat等

之前的虚拟化技术

java底层也是存在一个虚拟机,以至于java可以进行跨平台的进行操作。

java代码运行在虚拟机上,在由虚拟机进行将结果展示出来。

虚拟机就是带环建安装的一种解决方案

它可以在一个操作系统里面运行另一个操作系统

我们想要在window中使用Linux的功能就需要用到虚拟机

但是虚拟机,资源占用多,存在很多冗余部分

容器虚拟化技术

因为前面的虚拟机(一个操作系统中的运行另一个操作系统)

资源占用多,冗余部分杂乱

Linux发出新的虚拟化技术,Linux容器

Linux容器

  1. 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
  2. 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
  3. 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能却分计算资源。

Docker就是在此基础上出现的技术

Docker的三要素

镜像

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

10.1(Docker)初识安装Docker初识Docker的安装

容器

Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例

它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

仓库

仓库(Repository)是集中存放镜像文件的场所。

仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

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

最大的公开仓库是 Docker Hub(https://hub.docker.com/),

存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

小结

Docker 本身是一个容器运行载体或称之为管理引擎。

我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。

只有通过这个镜像文件才能生成 Docker 容器。

image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。

同一个 image 文件,可以生成多个同时运行的容器实例。

Docker的安装

Docker支持CentOS6.5以上版本。并对一些版本存在要求

查看Linux的内核版本命令

uname -r

查看CentOS版本

7版本

cat /etc/redhat-release

6版本

lsb_release -a

10.1(Docker)初识安装Docker初识Docker的安装

卸载Docker

可能之前有安装过Docker可以使用该命令进行清除一下

yum remove docker  docker-common docker-selinux docker-engine

           
10.1(Docker)初识安装Docker初识Docker的安装

安装

更新yum包

使用 root 权限更新 yum 包(生产环境中此步操作需慎重,看自己情况,学习的话随便搞)

yum -y update
           
10.1(Docker)初识安装Docker初识Docker的安装

这一步会做很多的操作将Linux中的yum包进行更新。

我们都知道我们可以通过yum直接在Linux中进行下载资源。

安装需要的软件包

yum-util

提供

yum-config-manager

功能,另两个是

devicemapper

驱动依赖

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

           
10.1(Docker)初识安装Docker初识Docker的安装

yum设置Docker的仓库

和Maven一样的道理,使用阿里会更加快一点。因为默认是外网仓库

下面两个都可用

# 中央仓库
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo

# 阿里仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

           
10.1(Docker)初识安装Docker初识Docker的安装

yum查看Docker可用版本

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

           
10.1(Docker)初识安装Docker初识Docker的安装

选择准确一个版本号

yum -y install docker-ce-18.03.1.ce

           
10.1(Docker)初识安装Docker初识Docker的安装

启动Docker并设置开机自启

//启动
systemctl start docker
//自动启动
systemctl enable docker

           
10.1(Docker)初识安装Docker初识Docker的安装

配置自己的阿里云镜像

在下载镜像的的时候可以走阿里云而不是DockerHut外网。(下载会很慢)

登录或注册阿里云Docker

点这里: 开发者工具和资源

可能随着时间更新,网站就变得不一样了

进入阿里云,打开控制台

10.1(Docker)初识安装Docker初识Docker的安装

左侧的导航栏,找到容器服务→容器镜像服务

10.1(Docker)初识安装Docker初识Docker的安装

找到镜像加速器即可

按照文档继续操作

10.1(Docker)初识安装Docker初识Docker的安装
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://6igp4y3f.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
           
10.1(Docker)初识安装Docker初识Docker的安装

阿里云的Centos安装法

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
           
安装效验
[email protected]:$ docker version
           
10.1(Docker)初识安装Docker初识Docker的安装

测试

docker run hello-word
           
10.1(Docker)初识安装Docker初识Docker的安装

以上就是介绍使用docker命令获取hello-world的镜像的过程,执行过程先是从自己的本地服务器上去找这个镜像。没有这个镜像之后,再去阿里云的服务器上找这个hello-world最新的镜像。

run做了什么

10.1(Docker)初识安装Docker初识Docker的安装

Docker的原理简介

Docker是怎么工作的

Docker是一个Client-Server结构的系统

Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问

守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是我们前面说到的集装箱。

10.1(Docker)初识安装Docker初识Docker的安装
  1. 我们在使用Docker的时候基本上都是通过Docker命令进行操作的。
  2. 客户端通过向Docker daemon发送命令进行操作主机中的镜像和容器
  3. 如果主机没有找到就会向远程仓库进行查找
10.1(Docker)初识安装Docker初识Docker的安装

为什么Docker比VM执行快

VM就是我们使用的虚拟机,在上面进行安装Linux系统

  1. docker有着比虚拟机更少的抽象层。由亍docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
  2. docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个docker容器只需要几秒钟。

什么是Hypervisor?

10.1(Docker)初识安装Docker初识Docker的安装
10.1(Docker)初识安装Docker初识Docker的安装
10.1(Docker)初识安装Docker初识Docker的安装