目录
1 Docker为什么会出现?
(1)在开发和运维之间我们经常会听到这样一种声音:“我在我的电脑上可以运行!”,而且如果版本更新,还有可能会导致服务不可用,这对于运维来说考验就比较大!
(2)环境配置方面,传统方式运维在每一个机器都要部署环境(Redis集群、ES、Hadoop......),费时费力!
那么我们在发布一个项目的时候(jar+(Redis、mysql、jdk、ES)),能不能带上环境安装包呢?
2 Docker的历史
VM:Linux centos原生镜像(一台电脑) ! 隔离的话需要开多个虚拟机!几个G!耗时长!笨重!
docker:隔离,镜像(最核心的环境 4m+jdk+mysql)十分的小巧,只需要运行镜像即
可!几个M!甚至KB,秒级启动!
3 Docker学习视频链接
Docker最新超详细版教程通俗易懂https://www.bilibili.com/video/BV1og4y1q7M4
3.1 Docker官网:
3.2 Docker官方文档:
3.3 Docker仓库地址:
Docker Hubhttps://hub.docker.com/
4 虚拟化技术和容器化技术
4.1 虚拟化技术
- 启动耗时长
- 冗余步骤多
- 资源占用多,虚拟出一堆硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
4.2 容器化技术
容器化技术实际上是一种轻量级的虚拟化技术。只不过相对于VM,属于进程级别的隔离。它具备以下特点:
- 更便捷快速的交互和部署(打包镜像发布测试,一键运行)
- 更快的启动速度,容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟硬件。
- 更高效的计算机资源利用
- 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响
4.3 DevOps(开发、运维)
(1)应用更快速的交互和部署:
传统:一堆帮助文档,安装各种程序
Docker:打包发布镜像,一键运行
(2)快捷的升级和扩缩容
使用了docker之后,我们部署就和搭积木一样,是一层一层的!
项目打包为一个镜像之后,我们可以进行扩展 服务器A!服务器B!
(3)更简单的系统运维
在容器化之后,我们的开发、测试环境都是保持高度一致的。
(4)更高效的计算机资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例!服务器的性能可以被压榨到极致!
5 名词解释
5.1 镜像(image)
Docker镜像好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run===>tomcat01容器,通过这个镜像我们可以创建多个容器(最终服务运行或者项目运行都是在容器中进行的)。
5.2 容器(container)
- Docker利用容器技术,可以独立运行一个或者一组应用,容器就是通过镜像来创建的。
- 启动、停止、删除容器是基本命令
- 我们可以把容器理解为一个新建的Linux系统
5.3 仓库(repository)
- 仓库是用来存放镜像的地方
- Docker Hub(镜像仓库)
6 阿里云镜像加速
(1)登录阿里云服务器,找到容器镜像服务
(2)找到镜像工具===>镜像加速器===>centos===>copy下面的命令
7 Docker安装步骤
官方安装参考手册https://docs.docker.com/engine/install/centos/
yum 安装 gcc相关环境(确保虚拟机可以上外网)
yum -y install gcc
yum -y install gcc-c++
(1)卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
(2)需要的安装包
yum install -y yum-utils
(3)设置镜像仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认是国外的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 推荐使用阿里云的,比较快
# 更新yum软件包索引
yum makecache fast
(4)安装docker docker-ce 社区版本 ee 企业版
yum install docker-ce docker-ce-cli containerd.io
(5)启动docker
systemctl start docker
(6)查看是否安装成功
docker version
(7)运行hello-world
docker run hello-world
(8)查看docker下面有哪些镜像(执行步骤7之后会有一个hello-world镜像)
docker images
(9)卸载docker
1)卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
2)删除资源
rm -rf /var/lib/docker docker的默认工作路径
rm -rf /var/lib/containerd
8 回顾Docker执行hello-world 流程
运行流程图: