什么是容器?
容器技术是一种虚拟化的方案

传统虚拟机是通过中间层,将一台或多台独立的机器虚拟运行在硬件之上

而容器时直接运行在系统内核之上的用户空间

因此,容器虚拟化也被称为操作系统虚拟化

由于运行在操作系统上,所以容器只能运行相同或相似内核的操作系统


什么是docker?

docker是能将开发的应用程序自动部署到容器的开源引擎。

Github地址:https://github.com/docker/docker

docker是docker.lnc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源

docker是通过内核虚拟化技术(namespaces(命令空间)及cgroups(控制组)等)来提供容器的资源隔离与安全保障等,由于docker通过操作系统层的虚拟化实现隔离,所以docker容器在运行时,不需要虚拟机(VM)额外的操作系统开销,提高资源利用率。

注:此内核是linux内核

docker官网:www.docker.com

hub.docker.com  上传下载docker镜像的网站


 

docker的特别之处:
docker在虚拟化的容器执行环境中,增加了一个应用程序部署引擎。
该引擎的目标:
提供一个轻量快速的环境,能够运行开发者的程序,便于方便高效的从开发者环境部署到测试环境,然后再部署到生产环境。

docker的优点:
1、提供简单轻量的建模方式,运行秒级
2、职责的逻辑分离。开发人员只需要关系容器中运行的程序,而运维人员只需要关心如何管理程序。
docker设计的目的性就是加强开发人员写代码的开发环境与应用环境要部署的生产环境的一致性。
3、快速高效的开发生命周期。
 缩短代码从开发到测试,再到上线运行的生命周期。让应用和程序具备可移植性。在容器中开发,以容器的形式去交付。
 
4、鼓励使用面向服务的架构。
 docker推荐单个容器只运行一个程序或者一个进程。这样就形成了一个分布式的应用程序模型。
 在这种模型下,应用程序或服务都可以表示为一系列内部互联的容器,从而使分布式互联的程序扩展或调试应用程序都变得非常简单。
 这就是在开发中常用的思想:高内聚低耦合


docker的使用场景:
1、使用docker容器开发、测试、部署服务;
2、创建隔离的运行环境
3、搭建测试环境
4、构建多用户的平台即服务(PaaS)基础设施
5、提供软件即服务(SaaS)应用程序
6、高性能、超大规模的宿主机部署


三大核心理念:
构建   基于镜像构建容器
运输   传输到系统中
运行    运行于容器

构建一个容器,放在某个地方,然后运行起来

docker里面运行的是应用(APP),这个应用可以是 tomcat、nginx、apache等服务。


docker组成:
1、docker客户端/守护进程
 cs架构(客户端架构)
docker  client
docker  server

bs架构:web架构
web网站网页
服务器

一般使用客户端与服务端交互


2、docker组件:
 镜像(image)
  docker容器的基石。容器基于镜像启动和运行,镜像就好比容器的源代码,保存了用于启动容器的各种条件。
  层叠的只读文件系统。
  联合加载
 
 最底端是引导文件系统,即bootfs。实际上,当一个容器启动后,引导文件系统就卸载
 第二层是root文件系统,位于bootfs之上。它可以是一种或者多种文件系统
 
 容器(Container)
 
 仓库(Repository)
  公有仓库  docker hub
  私有仓库 




centos版本中安装docker:

注:centos虚拟机必须要联网,不然无法安装。

docker介绍与安装_介绍

  1. 配置repo仓库

cd /etc/yum.repo.d/

vi docker.repo 

---
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

--- 

docker介绍与安装_安装_02

.

2 安装docker

yum install -y docker

检查有没有安装方法: docker version

.

3 启动并设置开机自启

systemctl enable docker
systemctl start docker

到此,docker容器安装完成,并且启动成功。