目录
初识Docker
一、Docker为什么出现?
1、一个项目多套环境,环境配置十分麻烦,每一个机器都要部署环境(集群redis、es、Hadoop。。。),费时费力
2、发布项目以前需要发布jar或者war包及对应的中间服务器环境部署,使用docker我们可以将jar/war带上系统环境一起打包发布
eg:
java -- apk --发布(应用商店)---张三使用apk---商店安装即可
java --- jar(环境)---打包项目带上环境(docker镜像)--上传(docker远程仓库类似商店)--下载发布的镜像--直接运行即可
Docker集装箱思想:
镜像隔离:可以充分利用服务器
Docker能干吗:
虚拟机技术:
虚拟机技术缺点:
1、资源暂用十分多
2、冗余步骤多
3、启动很慢
容器化技术:容器化技术不是模拟的一个完整系统
比较Docker和虚拟机技术的不同:
传统虚拟机,虚拟出一套硬件,运行一个完整操作系统,然后在这个操作系统上安装和运行软件;
容器的应用直接运行在宿主机的内核,容器是没有自己内核的,也没有虚拟我们的硬件,所以资源占用量少
每个容器间是互相隔离的,每个容器都有一个属于自己的文件系统,互不影响。
DevOps(开发、运维):应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行,更便捷的升级和扩缩容
使用DOcker之后,我们部署一个应用和搭积木一样 。
二、Docker的基本组成
1、docker架构图
![](https://img-blog.csdnimg.cn/20210129135610974.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0V4Y2VwdGlvbl9zaXI=,size_16,color_FFFFFF,t_70)
镜像(image): 镜像就是一个模板,可以通过这个模板来创建服务器服务,eg:tomcat--->run-->tomcat01容器(提供服务器),
通过这个镜像创造多个容器(最终服务运行或者项目运行就在容器里)。
容器(container):Docer利用容器技术,独立运行一个或者一个组应用,通过镜像来创建,启动、停止、删除、基本命令,容器就是一个、
简单的linux系统。
仓库(repository):存放镜像的地方,分为公有仓库及私有仓库,DOcker Hub,阿里云等.
三、Docker安装
1、环境准备
linux系统、Centos7、xshell脚本远程工具,准备一台带有centos7的linux虚拟机.
2、环境查看
1、查看机器linux内核版本,系统内核是3.10以上
2、查看linux系统版本
3、Docker安装
安装参考docker官网的帮助文档
https://docs.docker.com/engine/install/centos/
设置docker远程仓库,由于国外镜像很慢,我们将替换成国内阿里云镜像地址:
安装docker前需要安装的依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2
使用阿里国内源安装docker
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件报索引
#yum list docker-ce --showduplicates | sort -r
yum makecache fast
#yum install docker-ce -y
安装最新的docker引擎 docker-ce 社区版,docker-ee企业版,docker-ce-cli docker客户端 及容器
yum install docker-ce docker-ce-cli containerd.io
启动docker:systemctl start docker
查看docker版本:docker version
测试docker:docker run hello-world 验证docker正常运行,测试返回界面如下代表成功:
查看上一步查看hello-world镜像是否已存在使用命令:docker images
4、 卸载docker
四、配置阿里云镜像加速
安装完docker环境之后默认拉取镜像使用的本地网络环境,若是镜像过大,拉取的速度就很慢,所以我们考虑进行安装阿里云镜像加速,方法如下:
1、登录阿里云控制台找到“容器镜像服务”
2、找到自己的镜像加速器地址:
3、配置命令使用:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://m0w2k17q.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
五、Docker run hello-word执行流程
1、Docker run运行原理
2、Docker底层原理
Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问
3、Docker为什么比VM快
1、Docker有着比虚拟机更少的抽象层
2、Docker利用的是宿主机的内核,VM需要时guet os
备注:新建一个容器的时候,docker不需要虚拟机重新加载一个操作系统内核,而虚拟机是重新加载Guest OS