Windows安装Docker,并部署Node.js应用

Windows安装Docker,并部署Node.js应用_第1张图片
We love docker

前言

之前作者对于Docker是个什么东西完全是个零的概念,但因作者近期所做的项目需要用到Docker来部署应用(说白了就是不得不学),所以折腾了一天,在网上也查找了很多资料,最后终于成功地把自己的nodejs应用部署到Docker上(Windows环境),所以写下这篇文章跟大家分享,希望对您有所帮助!

一、下载 Docker Toolbox

点击下载链接,下载Windows版本的安装文件,下载完成后双击该文件,一路默认Next点下去即可。注意:中途如提示您安装其它的程序,全部选择安装即可。如360软件提示您阻止软件安装,则您需要选择允许软件安装。
安装成功后您的桌面上会出现这几个程序图标,他们分别是 Docker Quickstart Terminal(Docker的终端),Kitematic(Alpha)(Docker的GUI管理工具),Oracle VM VirtualBox(虚拟机)

Windows安装Docker,并部署Node.js应用_第2张图片
图标

二、使用 Docker

双击启动 Docker Quickstart Terminal,稍作等待,你会看到这样的界面:

Windows安装Docker,并部署Node.js应用_第3张图片
wooooo,docker

现在就可以使用docker了,你可以输入一些命令:

docker info        // 目前docker环境的相关信息
docker version  // docker的版本信息

三、使用 Xshell5 连接 Docker

因为docker终端的体验性很差,平时在使用的时候会有些不方便,所以我们可以用Xshell5连接docker服务器,我们使用 SSH 协议进行连接,主机的ip地址填写 192.168.99.100,它是docker安装后的默认ip地址,账号:docker,密码:tcuser,连接成功后就可以用Xshell5运行docker命令了。

Windows安装Docker,并部署Node.js应用_第4张图片
新建连接
Windows安装Docker,并部署Node.js应用_第5张图片
连接成功后的界面

四、用 docker 部署 node.js 应用

首先我们需要下载安装 node.js 环境的镜像,因为下载docker的国外镜像比较慢,所以作者选择了国内的镜像源 DaoCloud(你也可以选择其他的国内镜像,如阿里,163等),执行下面的命令:

docker pull daocloud.io/library/node
Windows安装Docker,并部署Node.js应用_第6张图片
安装nodejs镜像成功

安装镜像成功后,我们就可以构建自己的nodejs项目的镜像了,首先,cd 到项目的根目录,根据您自己的需求构建好 package.json,执行 vi package.json

{                       
  "name": "nodetest",       
  "version": "1.0.0",                                    
  "description": "nothing",                                 
  "main": "main.js",                                     
  "scripts": {                                           
    "start": "node main.js"
  },                  
  "keywords": [       
    "..."                  
  ],                       
  "author": "leechee",     
  "license": "ISC",        
  "dependencies": {        
    "koa": "^1.2.4",          
  }                           
}

创建 Dockerfile,执行 vi Dockerfile

FROM daocloud.io/library/node

# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service

# Bundle app source
COPY . /home/Service
RUN npm install

EXPOSE 8888
CMD [ "npm", "start" ]
  • FROM 表示镜像的地址
  • RUN 表示执行后面的命令
  • WORKDIR 指定工作目录
  • COPY 复制
  • EXPOSE 向外暴露端口
  • CMD 运行命令

最后编写项目入口程序 main.js,执行 vi main.js

// 一个简单的web server
var koa = require('koa');         
var app = koa();                    
                                   
app.use(function *() {        
  this.body = 'hello world!'; 
});                 
                                
app.listen(8888, function () {             
  console.log('server is running on 8888');            
}); 

准备工作完毕后,执行下面的命令,构建应用程序镜像

docker build -t mynodeapp .

最后一步,在 docker 容器中运行我们的应用

// 先查看我们创建的镜像的 IMAGE ID,它是 6d06d88bda4b
$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
mynodeapp                  latest              6d06d88bda4b        1 days ago          791MB
daocloud.io/library/node   latest              60bea5b86079        3 weeks ago         673MB
hello-world                latest              1815c82652c0        3 months ago        1.84kB

// 根据查到的 IMAGE ID 值,运行下面的命令
$ docker run -d -p 8888:8888 6d06d88bda4b

// 上面的命令没有报错的话,说明应用程序成功运行
$ docker ps    // 查看正在运行的容器
$ curl -i localhost:8888    // 测试

最后,还可以使用 Kitematic (Alpha) 来管理 Docker 的应用,比如使用 DockerHub 上的镜像,也可以管理自己的镜像。

Windows安装Docker,并部署Node.js应用_第7张图片
DockerHub上面的镜像

Windows安装Docker,并部署Node.js应用_第8张图片
自己的镜像

作者 小菜荔枝 转载请联系作者获得授权

你可能感兴趣的:(Windows安装Docker,并部署Node.js应用)