1. 犀牛前端部落首页
  2. Docker

Dockerfile是什么

Dockerfile是什么

本文将介绍Dockerfile是什么以及如何使用。

Dockerfil是构建Docker映像的描述文件。

工作流程如下:首先创建一个Dockefile,然后使用docker build从它构建一个Docker映像,最后从镜像运行一个容器。

Dockerfile是一个带有如何构建映像的说明的文本文件。

这些指令是配置语言的一部分,其中包括FROM, LABEL, RUN, COPY, ENTRYPOINT, CMD, EXPOSE, ENV等关键字。

让我们创建第一个Dockerfile:

假设你有一个文件夹,里面有一个简单的Node.js应用,由一个app.js和 package.json文件,列出了运行应用程序之前需要安装的两个依赖项,以及package-lock.json。

在它里面,创建一个纯文本文件Dockerfile,没有扩展名,内容如下:

FROM node:14
WORKDIR /usr/src/app
COPY package*.json app.js ./
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"]

注意:在CMD行使用双引号,单引号会导致错误。

在第一行中,我们说我们想从哪个镜像开始。这是我们的基础镜像。在本例中,它将使用官方的Node.js图像,基于Alpine Linux,使用节点14。当从Dockerfile创建容器时,Docker将从Docker Hub获取该镜像。

接下来,我们将工作目录设置为/usr/src/app,这意味着所有命令将在该文件夹中运行,直到我们再次更改它。这是一个我们知道在节点图像中已经存在的文件夹。

我们复制package.json, package-lock.json(使用*通配符)和app.js文件在当前文件夹,到工作目录。

我们运行npm install来安装包中列出的package.json文件。

然后,我们将端口3000对外公开,因为我们的应用程序在该端口上运行。容器与网络是100%隔离的,除非您使用expose命令公开它的一个端口。稍后我们将看到如何将计算机上的端口映射到Docker容器中的端口。

最后运行node app.js来启动app。

这是一个Dockerfile,后面的文章中俺将跟大家一起学习如何实际创建一个容器。

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/3456.html

发表评论

登录后才能评论