共计 1342 个字符,预计需要花费 4 分钟才能阅读完成。
Docker
这两年非常火热,也是各大厂必用的好东西,这两天没事玩了一下感觉很不错,学起来也不难 写下此文共勉学习。
关于 Docker
Docker 可理解为跑在宿主机上的非常精简、小巧、高度浓缩的虚拟机。它可以将容器里的进程安稳的在宿主机上运行。
Docker 重要的三个概念必须要知道:
- Image: 镜像
- Container: 容器
- Repository:镜像仓库
为了好理解 我们从 Docker 的 Logo 入手:
图片是一条鲸鱼游在海里 身上载着 N 个集装箱,下面是 Docker 字样。OK 图片描述完毕
图片给出的信息:
- 海:宿主机
- 集装箱:Docker 容器
- 鲸鱼 + 集装箱:Docker 技术
也就是说:Docker 容器(集装箱)里可以存放着我们写的代码,然后 Docker 载着代码在大海(宿主机)里运行
之所以用鲸鱼,可能是它在海里没什么天敌 体型又巨大而且游泳速度很快,毕竟 Docker 使用 GO
语言写的呢。
镜像(Image)、容器(Container)、仓库(Repository)
上文中只说了 Container
,而Image
与Container
的关系 就像 类
与 实例
的关系:
var p1 = new Person();
即:p1 是容器、Person 是镜像。 至于仓库嘛 就相当于 github 的代码仓库,github 是存代码的仓库,相应的 Docker 仓库就是存放镜像的。
只有理解上面的镜像(Image)、容器(Container)、仓库(Repository)才能破解下面的图:
上图分了三个块:
- Client(客户端 命令终端)
- DOCKER_HOST(Docker daemon)
- Resistry(镜像仓库)
从左往右看,Client 中执行了几个命令,这些命令都与 Docker daemon(Docker 的守护进程) 有交互,然后 Docker daemon 会根据相应命令做对应的动作。
- docker build:表示创建了一个 Image,这是一条虚线,虚线从开始到结束指向了中间的 Images 框里。
- docker pull:表示从仓库中拉取 Image,就像 github 里 pull 代码一样。docker daemon 接收到 pull 指令,从 Registry(远程镜像仓库) 里找到对应镜像(这里是 Nginx) 然后拉倒本地的 Images 中。
- docker run:向 daemon 发出运行指令,daemon 收到指令后去本地的 Images 中找对应镜像,如果能找到就会使用该镜像生成一个容器,如果没找到则会默认执行 docker pull 从仓库里下载,然后再生成容器,如果容器中运行着我们的代码,那么当容器运行后 代码也跟着 run 起来了
Docker 安装
Docker 分社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)
社区版是免费的,所以我们用 CE 版就可以了。
Docker CE 具体安装参考官网文档:CentOS、MacOS、Windows
下载完成后 打开终端运行:docker run hello-world
成功运行则表示安装成功了。
下篇文章《使用 Docker 部署 NodeJs 应用》会说 Docker 常用的命令及使用 Docker 部署 NodeJs
代码并让它运行起来,敬请期待
接触 Docker 时间较短,如果理解不对的地方烦请大佬给予指导,多谢啦~