day01-20200710
p1.基础知识
鲸鱼背上有一些集装箱
学习docker得基础知识
1.强制:熟悉Linux命令和相关背景知识
2.建议有maven和git的相关知识
docker和云计算有着不可分隔的关系。
docker的工作方向
JavaEE开发~
dockers开发~
dockers与Jenkins的整合持续集成和持续构建~
p2.为什么会出现docker
按照传统的发布工作来说,
开发提供代码或者war包(开发本机一切都是可以的),给运维。
运维开始部署,经常会出现运维部署失败,开发本机确是好的。
为什么开发时好的?运维却是不好的?
原因在于:环境和配置
因此docker就产生了:开发给运维的不再是代码而是一个完全成功得整体(包含代码、配置、系统、数据等)给运维,运维就只需要直接部署这个整体就好了。软件带环境安装。运维只需要安装一个“全家桶”就好了。
部署的时候经常会遇到各种集群环境,假设需要10台集群,每一台都分开安装那运维需要的工程就非常大了。良好的于宁环境打包成一个镜像。
以前代码即应用,现在是由下到上打包成一个镜像,完整的一个环境。docker一次构建、一次封装处处运行。
p3.docker理念
docker是基于go语言开发的
docker是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使应用及其运行环境能够做到“一次封装,到处运行”。
p4.docker是什么
解决了运行环境和配置文件软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
容器?整体发布?虚拟化?
p5.docker可以做什么
docker和虚拟机有什么区别
(1)虚拟机就是带环境安装的一种解决方案,对于Windows来说就是一个软件。虚拟机硬件软件都有。完整的操作系统。
虚拟机的启动时间是分钟级,而docker是秒级。
虚拟机启动步骤多,启动慢。
docker是在虚拟机的基础上发展出了另一种虚拟化技术:Linux容器 Linux containers
docker不是一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。
容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证檗属下任何环境中的软件都能始终如一的运行。
(2)容器内的应用是直接运行宿主机的内核,容器没有自己的内核,而且也么有硬件虚拟,容器要比传统的虚拟机轻便。
docker是缩小版、精细版、浓缩版的Linux系统。轻便、快速。centos镜像只要170m,而一个虚拟机的系统需要好几个g,对比下就更加轻量级。
开发自己运维(devops):一次构建、随处运行
好处:
更快速的应用交付和部署
更边界的升级和扩容
更简单的系统运维
更高效的计算资源利用
官网docker-cn.com
镜像、容器、仓库
docker-hub和git-hub 提交的是对应的镜像和代码仓库。docker-hub我们一般用不到。
p6.docker三要素
docker必须在centos6.5以上才可以。【uname -r】【cat /etc/redhat-】
镜像:模板,可以创建一个或者多个实例,镜像就是Java类
容器:镜像的实例,就是Java对象,缩减版的linux环境
仓库:集中存放镜像的地方。有公开库就是docker hub和私有库(国内公开的有阿里云和网易云)。
docker本身是一个容器运行载体或者称之为管理引擎,应用程序和配置依赖打包成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件,通过文件创建docker容器。image是容器的模板,docker根据image生成容器的实例。同一个镜像可以生成多个容器实例。
p7.docker安装
centos6.8安装
【yum -y install epel-relaese】安装epel仓库
【yum -y install docker-io】
安装后的配置文件:/etc/sysconfig/docker
启动docker后台服务:service docker start
docker version验证
centos7安装
可以通过参考官网安装
docker有社区版(ce)和企业版
官方安装脚本自动安装
【curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun】
启动服务
【systemctl start docker】
【systemctl status docker】
查看版本
【docker version】
安装成功!~