docker解释
docker作用:
使用具体例子解释,在没有docker之前,整体项目由程序员在本地编写完成之后,再把执行文件丢给运维人员。但是有问题:因为运维同学的具体环境与编码人员的环境可能不一致,所以可能在环境搭建的过程中会产生非常多的BUG。
而且,如果是多个服务器协同,那问题更大,要配一堆机器的环境。
试想,如果都交给自己做会怎么做?
如果是自己做的话,一个思路是,我在WindowsPC上面完成编码工作,然后用VMware架一个虚拟机,完了配置好一个机器,再弄N个镜像复制一下就好了。这样我只配置了一次Linux之中的环境。
但这有一个问题,VMware所占用的内存资源非常大,为什么呢?因为其实所需要的环境根本不需要那么多,一是VMware是提前分配了内存,那么运行时可能根本用不上那么多的内存。二是,有很多内存根本用不上,可能开启这个Linux只跑了一部分的东西。三是很多资源都是给了不需要的内核服务进程。
总而言之,VMware所消耗的资源大部分都交给了不需要的任务之上。
所以在这种背景之下有了docker。
docker第一个好处是,也就是解决环境问题。它可以将整个编码环境的内容打包成一个镜像封装到一个“包”里,可以理解为一个集装箱,里面装满了可执行文件,也装满了运行所需要的各个环境,例如MySQL等。
二是,他只需要这个运行时环境所需要的Linux内核。一个大集装箱只会占用一部分他所必须的Linux内核。
所以docker运行环境变成了只需要一个Linux的环境,在这之上运行不同集装箱。
好处是资源利用率很高,不需要用VMware。
由上面所述,在docker所需要的东西变成了:
- 所需要作为一个docker支撑的Linux内核
- 运行在docker之上的镜像。
有了Linux内核,就可以在此之上运行docker,有了镜像就可以在docker之上构建容器运行。
有了镜像就有了仓库,dockerhub就是用来管理docker镜像的一个仓库。
dockerhub有点类似与maven/github,但专门存储docker镜像的仓库。
有一些公共的镜像直接去dockerhub上面pull下来就可以了。
也可以自己修改一下,打包成一个镜像,push上去,别人就可以拉下来用了。
当然大陆地区访问还是很慢的,需要装一个阿里镜像。
安装
可以VMware装一个Linux,再在此之上装docker
也可以直接Windows装wsl2装docker.
第二种方式装:https://zhuanlan.zhihu.com/p/148511634
配置dockerhub方式:https://www.cnblogs.com/tianmingzh/articles/15861662.html