docker安装
docker基本组成
镜像(image)
docker镜像就是一个只读的模板。镜像可以用来创建docker容器,一个镜像可以创建多个容器。docker镜像文件雷士java类模板,而docker容器是咧类似于java中new出来的对象实例
容器(container)
从面相对象角度:
docker利用容器独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器类十余一个虚拟化的运行环境,容器是用镜像创建的运行实例。就像是java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准和隔离的运行环境,他可以呗启动,停止,删除。每个容器都是相互隔离的。保证安全的平台。
从镜像容器角度:
可以把容器看做是一个简易版的linux环境(包括用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。
仓库(repository)
仓库是集中存放镜像的地方
docker公司提供的官方仓库registry被称为docker hub 存放各种镜像模板的地方
仓库氛围公开仓库(public)和私有仓库(private)两种形式
最大的公开仓库docker hub(https://hub.docker.com/)
存放数量庞大的镜像供下载。宫内的公开仓库阿里云,网易云等
总结:
docker包本身是一个容器运行载体或管理引擎。把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。通过镜像文件才能生成docker容器实例
image文件看作是容器的模板。docker根据image文件生成容器实例。同一个image文件 ,可以生成多个同事运行的容器实例
镜像文件:image文件生成简单容器实例,本身也是一个文件,称为镜像文件。
容器实例:一个容器运行一种服务,当我们需要的时候,通过 docker客户端创建一个对应的运行实例,就是容器
仓库:放一堆镜像的地方,我们可以吧镜像发布到仓库中,需要的时候再从仓库拉下来就可以。
安装步骤
官网地址:https://docs.docker.com/engine/install/centos/
1.确定ContOS7及以上版本
cat /etc/redhat-release
2.卸载旧版本
官网步骤:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.yum安装gcc相关
contos7能上外网
yum -y install gcc
yum -y install gcc-c++
4.安装需要的软件包
yum install -y yum-utils
5.设置stable镜像库
大坑:
官方要求执行:yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo(国外地址非常慢)
推荐:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
注意:阿里云镜像可能有些包没有,拉取不到根据自己情况选择
6.更新yum软件包索引
yum makecache fast(建立元数据缓存)
7.安装docker ce
yum install docker-ce docker-ce-cli containerd.io
8.启动docker
systemctl start docker
9.测试
docker version
docker run hello-world
10.卸载
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
阿里云镜像加速
阿里云企业用户中心–镜像容器–自己的镜像加速器–在docker配置文件中配置
地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
底层原理:
为什么会比虚拟机快:
docker有着比虚拟机更少的抽象层
1.由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件 资源。因此在cpu,内存利用率上 docker将会在效率上有明显的优势。
2.docker利用的是宿主机的内核,而不需要加载操作系统os系统
当新建一个容器时,docker不需要和虚拟机一样重新加载一个新的系统内核。进而避免引寻,加载操作系统内核返回等比较费时非自愿的过程,当新建一个虚拟 机时,虚拟机软件需要加载os,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几 秒钟.