Docker概述
Docker为什么出现
 一款产品:开发–上线 应用环境,应用配置!
 开发 – 运维 问题:在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说,考验就十分大
 环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis,ES,Hadoop)
 发布一个项目(jar + (Redis MySQL jdk ES))配置超麻烦,不能够跨平台
 windows,最后发布到Linux
 传统:开发jar 运维来做
 现在:开发打包部署上线,一套流程做完!
Docker给以上的问题,提出了解决方案!

 Docker的思想就来源于集装箱
 JRE – 多个应用(端口冲突)–原来都是交叉的!
 隔离:Docker核心思想!打包装箱!每个箱子是相互隔离的
 Docker通过隔离机制,可以将服务器利用到极致!
虚拟技术

 比较Docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
 - 容器内的应用直接运行在宿主机的内容,容器是没有自己内核的,也没有虚拟我们的硬件,所有就轻便了
 - 每个容器是相互隔离,每个容器内都有一个属于自己的文锦系统,互不影响
 
Docker的优点
应用更快速的交付和部署
 传统:一堆帮助文档,安装程序
 Docker:打包镜像发布测试,一键运行
更便捷的升级和扩缩容
 实用Docker之后,我们部署应用就和搭积木一样!
 项目打包为一个镜像,扩容,扩展 服务器A!服务器B
更简单的系统运维
 在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
 Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例!服务器的性能可以被压榨到极致。
Docker安装
Docker的基本组成

 镜像(image):
 docker镜像就好比是一个模版,可以通过这个模版来创建容器服务,tomcat镜像==》run==〉tomcat01容器(提供服务器)
 通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中)
容器(container):
 Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
 启动,停止,删除,基本命令
 目前就可以把这个容器理解为就是一个简单的linux系统
仓库(reposltory):
 仓库就是放镜像的地方!仓库分为公有仓库和私有仓库!
 DOcker Hub默认是国外的,阿里云…都有容器服务器(配置镜像加速)
安装
以centos为例
 1.卸载旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
 
2.需要的安装包
sudo yum install -y yum-utils
 
3.设置镜像的仓库
 默认是国外的
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo #默认是国外的
 
推荐使用阿里云的
sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
4.安装docker
yum install docker-ce docker-ce-cli containerd.io
 
5.启动docker
systemctl start docker
 
6.使用docker version查看是否安装成功

 7.测试docker
docker run hello-world
 

卸载docker
1.卸载依赖
sudo yum remove docker-ce docker-ce-cli containerd.io
 
2.删除资源
sudo rm -rf /var/lib/docker
 sudo rm -rf /var/lib/containerd










