用 Docker 打包 Nodejs 程序

做者:NJOKU SAMSON EBERE

原文:https://dev.to/ebereplenty/do...前端

你听到过这样的对话吗?node

程序猿1:在个人计算机上不能用 😒

程序猿2:在我这里好好的啊 🤨

这种对话很常见。这通常是因为工做环境设置或配置不一样而引发的。这就是为何要使用 docker 的主要目的。git

在文中,我将教你什么是 docker,为何使用以及怎样用来给 nodejs 程序打包。程序员

什么是Docker?

Docker 的定义为:github

Docker 是一个容器化平台,用于将应用程序及其依赖项打包在一块儿,以确保不管工做环境如何,应用程序都能轻松运行。

好吧,这些文字只是告诉咱们:面试

Docker 是一种用容器轻松建立、部署和运行应用程序的工具。

为何要使用 Docker?

Docker 会将你的机器环境与你的代码一块儿提供给其余人,这样当你团队伙伴获得你的代码时,他们也能够获得你的机器配置。因为代码在拥有这些配置的计算机上运行,​​所以确定能够在其它计算机上运行,​​由于它们具备和你相同的配置。docker

如今能够把用在配置新计算机上的时间投入到更具更重要的工做中。npm

如何使用 Docker?

安装

  • 请访问 Docker 官网
  • 在菜单中的 Docker Desktop 选项卡下查看如何为你的机器安装 docker

Windows 用户请注意json

1. 你须要在计算机中启用虚拟化。要检查是否启用了虚拟化,请按照如下步骤操做:segmentfault

  • 在键盘上按 ctrl + alt + del
  • 在随后的菜单中选择“任务管理器”
  • 在弹出的 Windows 对话框中单击“性能”标签。这是个人

image.png

2. 对于使用 Windows 8 或更早版本的用户,请使用 docker toolbox

用 Docker 给 Nodejs 程序打包

确保已启动 docker,而且将其设置为 running,以便你查看更改或 docker 效果。

image.png

  • 接下来,在项目的根目录中建立一个文件,并将其命名为 Dockerfile,不带扩展名。

配置 Dockerfile

  • 在文件中输入如下代码来指定咱们正在使用的 docker node
# use docker node 10
FROM node:10
  • 输入如下代码为 Docker 应用建立目录
# create a directory to run docker
WORKDIR /app
  • 如下代码把 package.json 文件复制到 /app 目录中
# copy package.json into the new directory
COPY package.json /app
  • 如下代码在 Docker 应用中安装项目的依赖项
# install the dependencies
RUN npm install
  • 如今把项目中的全部的文件和文件夹复制到 docker 的 /app目录中。如下是代码:
# copy all other files and folder into the app directory
COPY . /app
  • 如下代码指定 docker 应用运行的端口
# open port 5000
EXPOSE 5000
  • 使用如下代码运行 docker 应用
# run the server
CMD node index.js

如今咱们的 Dockerfile 看起来是这样:

# use docker node 10
FROM node:10

# create a directory to run docker
WORKDIR /app

# copy package.json into the new directory
COPY package.json /app

# install the dependencies
RUN npm install

# copy all other files into the app directory
COPY . /app

# open port 5000
EXPOSE 5000


# run the server
CMD node index.js

构建 Docker 应用

  • 要构建 docker 应用,请在终端中键入如下命令,而后按 Enter
docker build -t docker-node-app .

你的终端应输出相似下面的信息:

image.png

在上面的命令中,docker-node-app 是咱们正在建立的 docker 应用的名称。你的可能会有所不一样。另外,请不要忘记结尾处的句点(.

运行 Docker App

  • 最后在终端中用如下命令运行 docker 应用:
docker run -it -p 5000:3000 docker-node-app

它会输出与普通应用彻底相同的消息,可是此次,它加载在端口5000上

image.png

在上面的命令中,咱们告诉 docker 运行在端口 5000 上构建的程序,即便咱们的程序运行在端口 3000 上。

结果

如今,咱们的 Docker 运行在 5000 端口上,而原始应用程序运行在 3000 端口上。检查你的浏览器

image.png

要查看全部正在运行的 docker 程序,请在终端中使用如下命令

docker ps

image.png

若是检查 Docker 仪表板,则会看到你的 Docker 程序:

image.png

你已经用 docker 建立了你的第一个部署🥳 。

总结

在快速迭代的系统中, docker 是很重要。所以咱们须要学习它。

咱们使用的大多数代码都在 docker hub 上找到。像 Microsoft、mongoDB、PHP 等许多公司已经为这些事情制做了代码(或镜像),所以你须要作的就是制做本身的副本。

这些配置称为镜像。例如能够在这里找到咱们所使用的 node 镜像

谢谢你的阅读。🤗

173382ede7319973.gif


本文首发微信公众号:前端先锋

欢迎扫描二维码关注公众号,天天都给你推送新鲜的前端技术文章

欢迎扫描二维码关注公众号,天天都给你推送新鲜的前端技术文章

欢迎继续阅读本专栏其它高赞文章:


相关文章
相关标签/搜索