MacOS Docker本地部署流水

Docker 简介

Docker是一个开源的引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其余的基础应用平台。node

Docker一般用于以下场景:git

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其余的后台应用;
  • 从头编译或者扩展示有的OpenShift或Cloud Foundry平台来搭建本身的PaaS环境。

上面都是摘抄,咱们仍是直接实践吧~github

装包

有两种方式,使用homebrew直接安装,或者下载包手动安装
homebrew安装(比较慢)web

brew cask install docker
复制代码

下载包安装下载地址docker

到桌面上你会看到图标,打开以后,在任务栏,会出现鲸鱼icon 数据库

好了,docker已经跑起来了~npm

镜像加速

鉴于国内网络问题,后续拉取Docker镜像十分缓慢,咱们能够须要配置加速器来解决,我使用的是网易的镜像地址:hub-mirror.c.163.comvim

在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址便可。修改完成以后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。bash

咱们跑一下命令查看下版本和相关信息网络

docker -v
docker info
复制代码

image文件 && 容器文件

咱们再来稍微了解一下docker中两个灵魂概念

image文件

Docker 把应用程序及其依赖,打包在 image 文件里面。只有经过这个文件,才能生成 Docker 容器。image 文件能够看做是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,能够生成多个同时运行的容器实例。

容器文件

image 文件生成的容器实例,自己也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。并且关闭容器并不会删除容器文件,只是容器中止运行而已。

先跑个官方例子

先从仓库把镜像拉下来,这个是官方的仓库,因此能够直接拉取

docker image pull library/hello-world
复制代码

拉取成功以后,就能够查看镜像列表

docker image ls
复制代码

由于我以前装过,因此不止一个,你们的列表里应该只有hello-world
那咱们如今把它跑起来

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
复制代码

等我一会 ~~~ 还没写完 ~~~ (╬ ̄皿 ̄)=○

相关文章
相关标签/搜索