一. 简介
Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使我们能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,我们可以与管理应用程序相同的方式来管理基础架构。通过利用Docker快速交付,测试和部署代码的方法,可以显着减少编写代码和在生产环境中运行代码之间的延迟。
Docker提供了工具和平台来管理容器的生命周期:
- 使用容器开发应用程序及其支持组件。
- 容器成为分发和测试公司应用程序的单元。
- 准备就绪后,可以将应用程序作为容器或协调服务部署到生产环境中。无论是生产环境还是本地数据中心,云提供商还是两者的混合,实现跨基础设施架构。
二. 使用
由于个人主要使用macOS,所以以后的分享主要侧重macos系统为主,linux的操作差别不大,但是Windows系统略有区别。
2.1 安装
- Docker Desktop for Mac安装
Mac Desktop - brew安装
我们通过brew的安装指令安装即可,如
brew cask install docker
2.2 安装Docker-Compose
其实在Mac上面安装都很方便,上面的俩种方式都包含了Docker-Compose组件了,所以不需要单独安装。
但是Linux和windows可能略有不同,请同学多查看官方文档。
2.3 验证
验证Docker以及Docker-Compose的版本,请使用如下指令:
docker --version
docker-compose --version
效果如下,则为成功
三. 核心概念
3.1 镜像:Image
它类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。
3.2 容器:Container
它是镜像的实例化体现,更像一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。
容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。
3.3 仓库:Repository
它类似于代码仓库,只是这儿是更细分的镜像仓库,是Docker用来集中存放镜像文件的地方。
镜像仓库(Repository)与注册服务器(Registry)的区别:
-
Repository:本身是一个仓库,这个仓库里面可以放具体的镜像,是指具体的某个镜像的仓库,比如Tomcat下面有很多个版本的镜像,它们共同组成了Tomcat的Repository。
-
Registry:镜像的仓库,比如官方的是Docker Hub,它是开源的,也可以自己部署一个,Registry上有很多的Repository,Redis、Tomcat、MySQL等等Repository组成了Registry。
四. 总结
Docker的理解和使用非常简单,但是在这之前我们得知道Docker到底解决了我们什么问题?这个中间价是如何给我们的应用赋能的?
作为一个开发者,我们应该仔细思考我们的选型,不要为了架构而架构,那就脱离技术的初衷了。
Reference
https://hub.docker.com/editions/community/docker-ce-desktop-mac
https://zhuanlan.zhihu.com/p/23599229
https://docs.docker.com/get-started/
欢迎关注我的博客:https://blog.wyatt.plus
评论区