Docker部署node.js应用

前言

什么是docker?

通俗的理解,docker是创建和管理容器的一种技术。那什么是容器呢?容器的功能与虚拟机很近似,都是在一个物理主机上运行多个操作系统的技术。最大的不同之处在于,虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

基本概念
  1. 镜像
    Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。我们可以通过命令或者一些基础镜像,构建自己需要的镜像。
  2. 容器
    容器可以看作镜像的实体,容器可以被创建、启动、停止、删除、暂停等。
为什么使用docker

我们知道在部署node.js的应用时,需要已经安装node与npm,如果涉及数据库的话,还需要有数据库的环境和数据库信息。在启动应用时,还需要安装程序依赖的第三方库。如果只是单纯的在一台机器上部署的话,感觉还好。但是如果我们需要在很多机器上部署该应用的话,按照一般的方法,就需要在多个机器上不断地重复搭建应用所需要的环境,这是一个很费时间的过程。如果我们采用docker的形式,就可以在本地创建一个应用程序的镜像(包含程序运行所需要的一切环境),然后只需要在远程主机上传我们创建的镜像,然后使用docker根据镜像创建运行应用进程的容器,轻松几行命令就可以在多个主机上运行我们的程序。

环境说明

本文中所有操作均在Ubuntu 16.0上进行。

前期准备

本文读者熟悉node.js技术,已经可以使用node.js搭建一个简单的应用。所以,本文说明中不包含具体的node.js代码教程。此外,本文的node.js设计MySql存储,不涉及数据库的可以直接从第三节开始看起。

一、安装docker

参考文章

二、MySQL容器制作
拉取MySQL数据库镜像
docker pull mysql/mysql-server:tag  

tag: 想要拉取的镜像的版本号 (比如, 5.5, 5.6, 5.7, 8.0, or latest).这里用的是5.7。
不建议使用8.0或者latest。新版本的mysql有些操作跟之前的不太一样,按照网上大多数教程处理可能会有意想不到的错误。本人已经踩坑。

运行MySQL数据库容器
sudo docker run --name db-manage -d -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 mysql/mysql-server:
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值