1、Docker简介
1.1、docker是什么?
docker是基于Go语言实现的与开源项目。docker的主要目标是"build,ship and run any app ,anywere"也就是通过对应用组件的封装,开发,部署,运维等生命周期的管理使用户的app(可以是一个wed服务器应用也可以是一个数据库等等等)及其运行环境能做到“一次镜像,处处运行”
linux容器的出现就解决了这样的问题而docker就是在他的基础上发展过来的。将应用打成镜像,通过镜像运行在docker容器上面的实例,而docker容器在任何操作系统上都是一样的,解决了开发环境和发布环境不一致导致的各种问题。,这样实现了跨平台、跨服务器。就是一句话,只需要配置好一次环境,就算换到哪个机子上都可以一键部署,大大的简化了操作
总结:docker的出现解决了运行和配置问题的软件容器,方便做持续集成并有助整体发布的容器虚拟化技术。
1.2、容器与传统虚拟机对比
1、传统虚拟机技术
虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统中运行另一种操纵系统,比如在windows11中运行centos7。应用程序时毫无感知的,因为虚拟机看上去就跟真实系统一样,而对于底层的系统来说,虚拟机就是一个普通文件,如果不需要了就可以直接删掉了,对其他的部分毫无影响。这类虚拟机完美的运行了另一套系统,能使应用程序,操纵系统和硬件三者之间的逻辑不变。
传统虚拟机技术基于是安装在主操作系统上的虚拟机管理系统,创建虚拟机,在虚拟机上安装从操作系统,再从操作系统中安装部署各种应用。
虚拟机的缺点:1、占用的资源多 2、冗余步骤多 3、启动慢
2、容器虚拟化技术
linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。
linux容器不是一个完整的操作系统而是对进程进行隔离。有了容器,就可以经软件运行所需的所有 资源打包到一个隔离的容器中,容器只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一的运行。
docker容器实在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚拟化。
docker优点:1、启动迅速 2、占用资源少 3、冗余步骤少
3、总结两者之间的比较
1、传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程
2、容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
3、每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
1.3、docker的基本组成
1、镜像
Docker镜像image就是一个只读的模板。镜像可以用来创建docker容器,一个镜像可以创建多个容器。他也相当于一个root系统文件,比如官方镜像centos7就包含了完整的一套centos7最小系统的root文件系统
2、容器
可以吧容器看成一个简易版的linyx环境(包括root用户、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
3、仓库
是集中存放是文件的场所。
仓库分为两种 1、公开仓库 2、私有仓库
2、Docker的安装
docker官网:http://www.docker.com
Docker Hub官网:http://hub.docker.com
1、安装条件
目前,docker运行在centos7(63-bit)上。要求64位,linux系统内核版本在3.8以上。
cat /etc/redhat-release #查看系统版本
uname - r #显示操作系统的发行编号
2、使用yum安装gcc相关环境
yum -y install gcc
yum -y install gcc-c++
3、安装需要的软件包
yum -y install yum-utils
4、设置stable稳定镜像仓库
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 -y install docker-ce docker-ce-cli containerd.io
8、启动cocker
systemctl start docker
9、测试
docker version
docker run hello-world
出现一下的内容表示按准成功