Docker新手宝典(必备)新手宝典(必备)
目录目录
•写在前面
•为啥我们要用Docker?
•Docker核心组件
Docker客户端和服务器
Docker镜像
Docker 容器
Registry
•安装Docker
•Docker上手使用
使用DockerHub
Dockerfile是啥
运行服务器Web程序
•Docker指令汇总以及学习地址汇总
Docker常用指令
Dockerfile常用指令
•写在前面写在前面
如果使用上了Docker,我觉得你肯定会被它吸引住,因为它可以帮助保证应用程序快速、可靠、一致地部署,妈妈再也不用担心我换机子跑程序又要装环境,部署出Bug了。用一个形象的比喻来形容就
是,如果你爱上了GitHub,我相信你也会爱上Docker。咱们言归正传,学习这一篇文章你可以学到什么?
清晰的Docker架构层级(这个还是很重要的,脑子里有清晰的架构,学啥都明明白白的);
Docker在Linux上的安装
Docker上手使用(运行一个程序,透过使用了解流程)
Docker指令汇总以及深入学习地址汇总(授人以鱼不如授人以渔嘛,可以随手当做参考手册,也告诉你怎么深入学习)
宝典在手,天下我有,赶紧继续学下去(觉得看完有收获的点个关注和给个赞吧!!!觉得看完有收获的点个关注和给个赞吧!!!)。
•为啥我们要用为啥我们要用Docker??
如果我们开发一个应用,需要在不同的机子上运行,这个时候我们会怎么办?打包程序,然后在新的机子上安装系统、环境、各种依赖、各种配置、服务器,一切准备好了之后,就开始跑程序。这个流
程不仅效率低,而且过程中还容易出现各种问题,甚至可能因为环境没有配置好,导致原本正常的程序运行时出现问题,很让人苦恼。这个时候如果我们能打包整个环境依赖以及程序,那么是不是换新
机子的时候,就可以直接运行了。说到这里,可能很多人会想到用虚拟机,毕竟虚拟机可以模拟整个操作系统级的环境甚至硬件,不过我这里要告诉你,Docker比虚拟机更好用,至于为什么。你接着往
下看就知道了。
我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,
必要的二进制和库,以及一个完整的用户操作系统。而Docker使用的容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器
共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。容器技术是实现操作系统虚拟化的一种途径,可以让您在资源受到隔离的进程中运行应用程序及其依赖关系。通过使用容器,我们
可以轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。容器可以帮助保证应用程序快速、可靠、一致
地部署,其间不受部署环境的影响。容器还赋予我们对资源更多的精细化控制能力,让我们的基础设施效率更高。我们可以通过下面这幅图我们可以很直观的反映出这两者的区别。
我们看上图,对于容器有个大致的认识,不过还是不够直观,那么我们把真实的应用放在这个层级中,大概就是下面这个图的样子。
要注意,容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于是在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔
离。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境
问题。总体来说, Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。它还有DockerHub
哦,和GitHub一样提供托管服务,非常方便,后面我们会讲到。总结Docker的优势就是
docker 启动快速属于秒级别。虚拟机通常需要几分钟去启动
docker 需要的资源更少, docker 在操作系统级别进行虚拟化, docker 容器和内核交互,几乎没有性能损耗,性能优于通过 Hypervisor 层与内核层的虚拟化
docker 更轻量, docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境, Docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高
与虚拟机相比, docker 隔离性更弱, docker 属于进程之间的隔离,虚拟机可实现系统级别隔离
安全性: docker 的安全性也更弱。 Docker 的租户 root 和宿主机 root 等同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作。虚拟机租