使用dockerfile将应用镜像化,及error context checking错误解决方法。

1.Dockerfile的用途

Dockerfile的作用:Dockerfile用于指导docker完成应用的容器化。
一个简单的Dockerfile内容。

# Test web-app to use with Pluralsight courses and Docker Deep Dive book
# Linux x64
FROM alpine

LABEL maintainer="[email protected]"

# Install Node and NPM
RUN apk add --update nodejs nodejs-npm

# Copy app to /src
COPY . /src

WORKDIR /src

# Install dependencies
RUN  npm install

EXPOSE 8080

ENTRYPOINT ["node", "./app.js"]

FROM指令:指定容器的基础镜像,每一个dockerfile必须以该条指令开头(回忆镜像的分层)。

LABEL指令:用于标明该镜像的维护者是谁,并不是必须的,用处不大。

RUN 指令:基于当前层镜像,在此之上新建一个镜像层,并在该镜像层中,执行命令。

ADD指令:该指令将nodejs和nodejs-npm添加到当前镜像层中。

EXPOSE 指令:将该应用的端口号设置为8080。

ENTRYPOINT 指令:该镜像的入口程序,并不会新增镜像层。

2 使用Docker命令构建镜像

docker image build -t xxx . // . is important

.的含义:.表示docker使用当前目录作为构建上下文。这个目录与shell的工作目录一样,不是docker的工作目录。

-t的含义:为镜像取小名。

在使用这条命令构建镜像时,一定要将dockerfile置于应用的目录下,然后使用cd命令进入该应用目录,并且确保该目录下没有其他与应用无关多余的其他文件或文件夹,否则docker很可能抛出error context checking异常,致使无法构建镜像。

build命令执行完毕后,仅仅只是本地镜像,需要使用push命令将镜像推送至docker hub上,push之后,就能够方便快捷的使用该镜像了。

你可能感兴趣的:(使用dockerfile将应用镜像化,及error context checking错误解决方法。)