手把手教你写Dockerfile以及测试

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Dockerfile是什么

dockerfile就是用来构建docker镜像的构建文件,命令参数脚本。

如何使用Dockerfile

  • 1、编写一个Dockerfile文件
  • 2、docker build构建成

基础使用此处罗列一些我们经常用到的

# 指定依赖镜像版本基于什么镜像构建镜像复制了这个镜像
FROM node:16-alpine 
# 指定doker的环境变量运行时一直生效,请注意运行时
ENV NODE_ENV=${NODE_ENV}
# 构建参数运行时无效可以构建时候临时修改变量请注意构建时
ARG NODE_ENV=production
# 指定你的命令shell语句运行的目录假如目前没有这个目录它就会自动创建这个目录
WORKDIR /app
# 复制源文档到工作目录将宿主机的文件拷贝到某路径下
COPY ./ /app  # 也可以使用 ADD但是COPY更好用支持url 
# 运行shell命令语句构建时候执行
RUN yarn install
# 暴露镜像的指定端口替换成应用实际的端口号
EXPOSE 8090
# 指定镜像启动运行的脚本只有容器真正运行的时候才会运行的脚本执行后容器的生命周期即结束且一般为阻塞式语句如tail语句
# tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止,会输出文件追踪文件更新
# ENTRYPOINT如果不是json就会以ENTRYPOT为准
# 如果ENTRYPOINT和CMD都是JSON就用ENTRYPOINT+CMD拼接
CMD tail -f xxx.txt # 也可以使用ENTRYPOINT
CMD [ "node", "server.js" ] # 用法举例

附图ENTRYPOINT和CMD

下面介绍几个我没有怎么用过的

# VOLUME
# 指定映射文件可实现挂载功能可以将宿主机目录挂载到容器中可用专用的文件存储当作Docker容器的数据存储部分
VOLUME ["/data"]
# LABEL
# 指定元数据便于找到docker一个Dockerfile种可以有多个LABEL
LABEL com.xiaojin.blog="xiaojin"
LABEL version="1.0"
LABEL description="I see myself as a boy playing on the \
seashore, find a smooth stone, I feel happy. "

# USER
# 设置启动容器的用户可以使用用户名或UID
USER daemo
USER UID

# ONBUILD [INSTRUCTION]
# 这个命令只对当前镜像的子镜像生效。当前镜像构建的时候不会执行基于当前镜像的镜像去构建的时候才会执行
# 比如当前镜像为A ls -al 命令不会在A镜像构建或启动的时候执行它会在子镜像构建的时候被执行
ONBUILD RUN ls -al

# STOPSIGNAL
# 当容器停止时给系统发送什么样的指令指定容器使用什么信号一般指定信号名
STOPSIGNAL signal

# HEALTHCHECK
# 容器健康状况检查命令有下面两种语法
HEALTHCHECK [OPTIONS] CMD command
HEALTHCHECK NONE

docker部署nodejs与测试

超简单图文并茂基于Linux使用Docker部署Node.js项目

大功告成~~

  • 今天就写到这里啦~小伙伴们( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Docker