Docker是一个开源的引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其余的基础应用平台。node
Docker一般用于以下场景:git
上面都是摘抄,咱们仍是直接实践吧~github
有两种方式,使用homebrew直接安装,或者下载包手动安装
homebrew安装(比较慢)web
brew cask install docker
复制代码
下载包安装,下载地址docker
到桌面上你会看到图标,打开以后,在任务栏,会出现鲸鱼icon 数据库
好了,docker已经跑起来了~npm
鉴于国内网络问题,后续拉取Docker镜像十分缓慢,咱们能够须要配置加速器来解决,我使用的是网易的镜像地址:hub-mirror.c.163.com。vim
在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址便可。修改完成以后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。bash
咱们跑一下命令查看下版本和相关信息网络
docker -v
docker info
复制代码
咱们再来稍微了解一下docker中两个灵魂概念
Docker 把应用程序及其依赖,打包在 image 文件里面。只有经过这个文件,才能生成 Docker 容器。image 文件能够看做是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,能够生成多个同时运行的容器实例。
image 文件生成的容器实例,自己也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。并且关闭容器并不会删除容器文件,只是容器中止运行而已。
先从仓库把镜像拉下来,这个是官方的仓库,因此能够直接拉取
docker image pull library/hello-world
复制代码
拉取成功以后,就能够查看镜像列表
docker image ls
复制代码
docker container run hello-world
复制代码
docker container run
命令会从 image
文件,生成一个正在运行的容器实例。
注意,docker container run
命令具备自动抓取 image
文件的功能。若是发现本地没有指定的 image
文件,就会从仓库自动抓取。所以,前面的docker image pull
命令并非必需的步骤。
若是运行成功,你会在屏幕上读到下面的输出。
这是官方的例子,没依赖,没有麻烦的配置,若是是本身的项目呢?因此...咱们又要开始准备工做了~~
接来下,咱们须要跑一个私人node项目,因此咱们要先从git上拉代码,因此先装个gitlab
gitlab
docker search gitlab
docker pull gitlab/gitlab-ce:latest
复制代码
OK,咱们拉个项目吧~
mkdir docker-demo0108
cd docker-demo0108
git clone https://github.com/daly-young/nuxt-test.git
cd nuxt-test
复制代码
在项目的根目录下,新建文本文件.dockerignore和Dockerfile。
vim .dockerignore
.git
node_modules
npm-debug.log
复制代码
vim Dockerfile
FROM node:8.11.3
COPY . /nuxt-test
WORKDIR /nuxt-test
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
复制代码
FROM node:8.11.3:该 image 文件继承官方的 node image,冒号表示版本号,本身的项目用什么版本写什么版本。
COPY . /nuxt-test:将当前目录下的全部文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/nuxt-test。
WORKDIR /nuxt-test:指定接下来的工做路径为/nuxt-test。
RUN npm install:在/nuxt-test目录下,运行npm install命令安装依赖。注意,安装后全部的依赖,都将打包进入 image 文件。
EXPOSE 3000:将容器 3000 端口暴露出来, 容许外部链接这个端口。
咱们来建立image文件吧
// 最后的这个.必定要加上!
docker image build -t nuxt-test .
复制代码
docker image ls
复制代码
镜像OK了,而后就是建立容器了~~~
docker container run
命令会从 image 文件生成容器。
docker container run -p 8000:3000 -it nuxt-test /bin/bash
复制代码
建立成功~此时咱们已经在项目里了,能够直接跑项目了
npm run dev
复制代码
等我一会 ~~~ 还没写完 ~~~ (╬ ̄皿 ̄)=○