
Docker(一) —— 虚拟机安装Docker
Dcoker和宿主机的关系:Dcoker直接使用宿主机的Kernel,也没有虚拟硬件,每个容器相互隔离,都有一个属于自己的文件系统。
目录
记住这幅图!
这幅图怎么看?以镜像为例,从指向images的箭头我们就能看出,镜像都是从哪里来的:从docker仓库pull下来一个镜像,同事的tar包解压出一个镜像,提交一个容器快照,用dockerfile构建,还有一个tag不知道啥意思。
学了这么多,docker在企业中通常用来干嘛?
- docker VS Linux虚拟机
- 镜像、容器基本命令
- 用Dockerfile 构建自己的镜像并发布(push)或者打包(save)
- docker卷挂载技术
- docker自定义网络+用docker实现集群部署
用一条错误且混乱的命令不完全地总结一下
docker run
-it
-p 80:8080
-w /usr/local 设置工作环境
-- name tomcat-01
-v tomcat-volume:/usr/local/tomcat-5.2.0/ 具名挂载
--volumes-from tomcat-01 挂载到数据卷容器tomcat-01
--net mynet 把容器加入mynet网络中
tomcat:latest
/bin/bash
Docker概述
- 将应用程序的jar包和环境一起打包成镜像,谁需要就直接下载这个镜像,可以直接运行。
- 隔离思想:集装箱,箱子之间不会有任何接口
- Docker VS. 虚拟机
Dcoker和宿主机的关系:
Dcoker直接使用宿主机的Kernel,也没有虚拟硬件,每个容器相互隔离,都有一个属于自己的文件系统。
- 在Docker出来之前,我们都是用虚拟机(如果要部署含有3个节点的Hadoop集群,我们就要开3个虚拟机)
- 都是虚拟化技术
- 都是通过镜像安装,但虚拟机的镜像是一台完整的电脑(需要模拟硬件和操作系统和软件,是的虚拟机模拟了硬件,记得我们开启虚拟机的时候总会问麦克风),而Docker的镜像只包含应用和运行所需要的环境
- Docker轻巧,虚拟机笨重
- 虚拟机和宿主机的关系
- Docker的文档非常详细Docker Documentation | Docker Documentation
Docker的原理
Docker是一个Client-Server结构的系统。
我们用systemctl start docker 开启docker服务后,docker的守护进程docker daemon一直运行在主机上。客户端通过Socket从client访问。这一点可以类比redis-server和redis-cli去理解。
所我们的y
docker + run/pull/build/network/rm/rmi
命令都是作为客户端在发送命令。
Server收到Client的命令(pull /run/build),就会执行这个命令。
镜像和容器的关系其实就是程序和进程之间的关系,运行起来的镜像(程序)就是容器(进程),同一个镜像可以开多个容器。
问题:既然Docker是C/S结构的,那么Docker和MySQL一样主要把server部署在大型服务器上,把client放在个人PC上吗?
回答:NO。两个角度解释
1)前面已经说过了,可以类比redis-cli和redis-server去理解,cli和server都在一台服务器上。
2)类比虚拟机来看,Docker和虚拟机都是基于宿主机的内核去实现虚拟的,所以client和server应该都在一台PC上,而不是用自己的PC作为DockerClient去请求另一台服务器上的DockerServer。
Docker能做什么
关键词:Devops(开发+运维)
1.应用更快速地交付和部署
之前开发和运维使用的不是同一套系统,运维需要读开发文档再次搭建环境十分麻烦。
Docker镜像将环境一起打包,一键运行!
2. 更便捷的升级和扩缩容
升级:比如一个镜像里有(springboot 1.5 /redis 5/ tomcat 8)这3种环境,我们现在要对Tomcat8进行升级,,,,后面没明白
扩缩容:一个容器把服务器A占满了,可以在服务器B上一键运行这个容器,实现负载均衡
3.更高效的服务器资源利用
集装箱能塞多少塞多少,可以把服务器的性能压榨到极致
安装Docker
本来想在Windows下安装,docker也提供了Windows版本。但是鉴于企业都是在Linux里使用docker的,并且Docker原本也是为Linux内核开发的,只不过通过WSL可以实现在Windows上使用Linux内核。所以还是决定在Linux下安装Dcoker.
步骤和这篇博客里的一模一样 ,别忘了把远程仓库改成阿里云镜像。
Docker安装(Centos 7.5)_码农娟的博客-CSDN博客_centos7.5安装docker
测试HelloWorld
启动Docker服务
systemctl start docker
通过这个命令可以看出,docker下载后被作为了系统服务,以系统服务的方式在后台开启。
测试HelloWorld
docker run hello-world
docker先去本地仓库找,因为我们本地的镜像仓库里什么都没有,当然也没有hello-world这个镜像,所以一开始会显示“Unable to find image locally” 。进而去配置的远程仓库去找(前面配置的阿里云)。
远程仓库找到的话,把这个镜像pull到我们的本地仓库,然后创建容器执行。
远程仓库找不到的话会报错。
阿里云镜像加速
如果不开镜像加速的话下载镜像特别特别特别慢(一个centos镜像两个小时也没下下来)。所以要开启镜像加速!
这里我们用阿里云的镜像加速,地址:
容器镜像服务https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
注册就行,免费的。
开启加速之后,镜像下载速度纵享丝滑!
更多推荐










所有评论(0)