docker简介
docker的思想源于集装箱
docker的核心思想:资源隔离,通过他的隔离机制,可以将服务器利用到极致
docker学习笔记----历史
2010年 几个IT年轻成立公司:dotcloud----docker(容器化技术)
刚诞生:并没有引起行业的注意-----解决方法:开源----越来越多的人发现docker的优点,之后每个月都会更新一个版本
–2014年4月 docker1.0发布
docker 为什么这么火呢?— 轻巧
docker和虚拟机的区别:
在docker容器出现之前,是使用虚拟机技术的
虚拟机:在window里装一个VMware ,通过这个软件可以模拟一台或多台电脑,但这样显得十分的笨重,它一个基础镜像就占用很大的内存空间,至少需要几个G,启动可能需要几分钟
虚拟机是属于虚拟化技术,它的隔离是需要你开启多个虚拟机,各个虚拟机之间是相互隔离的,显得十分笨重
而docker容器技术,也是一种虚拟化技术,它的隔离是通过镜像机制(最核心的环境)十分小巧,运行镜像即可,只占用几M或几KB的内存就足够了,并且他是秒级启动
docker基础知识:
docker是基于go语言开发的
docker能干什么?
虚拟机技术:一台电脑,底层:kernel -->libs—>很多app
弊端:
资源占用多:一个电脑一个电脑的虚拟
冗余步骤多:比如开机
启动很慢:可能要几分钟
容器化技术:并不是模拟一个完整的操作系统,比如说我要安装一个centos,我只需要它的核心就够了
底层:kernal—>很多容器(lib(运行环境)+ 应用)
总结:docker和虚拟机的不同
传统的虚拟机:虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
容器:容器内的应用是直接运行在宿主机的内核,容器是没自己的内核的,也没有虚拟硬件,所以就十分轻便,简单的说就是在虚拟机的基础上,进行了一系列的简化
每个容器间是互相隔离的,每个容器内都有一个属于自己的文件系统,互不影响。
原来:在自己的电脑上装3,4 台虚拟机来跑应用可能就卡死了,而用了docker我装30个都没问题,可以极大的利用内存资源
DevOps 开发,运维
1,把应用更快速的交付,部署
传统:有一堆的帮助文档,安装程序
docker:打包镜像,发布测试,一键运行
更便捷的扩容,缩容
使用了docker之后,我们部署应用就像是在搭积木一样
SpringBoot Redis 软件升级十分方便:直接升级整个包
扩展十分方便:比如说我后端的服务器A,它的性能已经到瓶颈了,那我现在需要扩展,做负载均衡,增加一个服务器B,那使用docker 就很简单了,先把项目打包为一个镜像,然后在服务B上一键运行就可以了
一个虚拟机上可以运行很多个容器,容器之间也能进行交互
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源的利用
1个1和2G的服务器就可以运行几十个软件
docker是内核级别的虚拟化,在一个物理机上运行很多的容器实例
服务器的性能可以被压榨到极致。
docker安装
1,docker的基本组成
客户端—服务器-----仓库
客户端使用docker的相关命令来对服务器里的containers 进行操作,containers是基于镜像进行创建的,镜像从哪里来呢,从远程仓库里拉取
名词解释:
镜像(image):镜像就好比是一个模板,可以通过这个模板来创建容器服务,比如说我现在有一个tomcat镜像,我现在要把我的tomcat镜像运行起来,docker run=>容器:tomcat01(提供服务)
通过这个镜像可以创建多个容器(最终的服务运行或者是项目运行就是在容器中的)
容器(container):
docker利用容器技术,可以独立运行一个或一组应用,通过镜像来创建的
容器可以启动,停止,删除----基本命令
仓库(repository):
仓库就是存放镜像的地方
仓库它可以分为公有仓库和私有仓库
公有:Docker Hub aliyun… 都有容器服务(国内源—>配置镜像加速)
2,安装docker
环境准备
centos7
卸载旧版本 :yum remove docker
安装方法:
1,安装软件需要的安装包:yum install yum-utils -y
2,设置镜像的仓库
docker是怎么工作的
docker是一个cs(client-server)结构的系统,
docker的守护进程一直在主机上运行,
通过Socket从客户端访问
docker-server接收docker-client的指令,就会执行这个命令
==================
docker常用命令:
docker version 显示docker的版本信息
docker info 显示docker 的系统信息
docker --help 可以查看docker 的所有命令 也可以查看官网
当一条命令不知道怎么使用时,1可以去官网查,2可以用docker 命令 --help
docker的镜像命令:
docker images 查看本地的主机有哪些镜像
相关参数解释:
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
相关选项:
-a 显示全部
-q 只显示镜像id
===============
docker search 镜像名 --搜索镜像
常用选项:
–filter 过滤 eg :–filter=STARS=3000 搜索出镜像的stars大于3000的镜像
docker pull 镜像名:版本 拉取镜像
docker常用的命令:
docker version
docker info
docker pull 拉取镜像
docker run
docker help 查看docker容器里面有哪些命令
docker rm/start/stop 删除,启动,停止容器
docker exec -it 进入docker容器
docker ps 查看
docker images 查看有哪些镜像