什么是Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
为什么要用Docker
为了线下线上环境一致,更方便的部署
大家一定经历过环境配置的折磨
“明明在我这台机器上都可以运行,为什么跑你那去就出错了?”
很大的可能环境不一致,如果线下更新了环境,那么服务器上也要更新一大堆。
为了减少这些痛苦,Dokcer提供了很好的解决方案:打包我们的应用以及依赖到Docker容器中,从而避免了环境不一致
Docker的一些概念
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。
安装Docker
支持的平台:
DESKTOP
Docker Desktop for Mac (macOS)
Docker Desktop for Windows (Microsoft Windows 10)
SERVER
CentOS
Debian
Fedora
Ubuntu
Docker仓库
我们搭建环境使用的镜像都可以在上面的仓库找到
在开发过程中如何使用Docker
接下来我们就使用一个最简单的实例搭建一个基于koa的开发环境
开发环境使用的配置
Node
node:12-alpine
koa 基础框架
koa-router 路由
promise-mysql mysql
nodemon 自动重启服务
Nginx
nginx:1.17
Mysql
mysql:5.6
目录结构
-