Dockerfile编写的常用属性和.netcore容器化案例+docker-compose

记录下Dockerfile的编写常用属性

# LABEL 一个全局标注,键值对开头 可多行使用 例: a.b.c=测试标注,用来标注一些说明信息

# RUN 语句过长可使用"\" 来拆分 表示在构建镜像时执行命令行 用&&来连接使用多个命令行而不要多次RUN(这会导致多重镜像)

# RUN wget -O - https://some.site | wc -l > /number 命令1"|"命令2 表示命令1执行失败就执行命令2

# EXPOSE 通知Docker容器在运行时默认侦听指定的网络端口 可以-p来覆盖

# ENV 配置环境变量 在docker run --env <key>=<value>

# ADD <src> <dest> 或 ADD ["<src>,"<dest>"] 把src路径中的所有文件复制到dest中 可以做正则匹配 只复制src目录下的全部文件,如果src是个压缩文件就解压后再复制

# COPY 是ADD的简化版本 一般都是使用COPY ADD很少用 只是复制文件到目录 不会解压

# ENTRYPOINT 例:ENTRYPOINT ["executable", "param1", "param2"] 首选 可以充当声明变量名 ENV DIRPATH /path

# CMD CMD和ENTRYPOINT在Dockerfile中至少有一个 指定容器启动时在WORKDIR中执行的命令行 例:["dotnet","xxx.dll"]

# ARG ARG <name>[=<default value>] 指定参数 可以在build时 设置值 定义ARG CONT_IMG_VER Dockfile获取$CONT_IMG_VER

# USER 运行的图像和用于当任何指令设置的用户名

# Dockfile中等于用":"表示 例:${CONT_IMG_VER:-v1.0.0}

# ONBUILD 充当其他镜像的基础镜像时触发 例:ONBUILD ADD . /app/src

# VOLUME 指定容器运行时和本地映射的文件夹 例: VOLUME [ "/data:/data" ] 表示本地的data路径和容器中的data路径相映射,本地覆盖容器

# HEALTHCHECK

# --interval=DURATION(默认值:30s)(运行状况检查将首先在容器启动后的间隔秒运行,然后在每次上一次检查完成后再间隔秒。)

# --timeout=DURATION(默认值:30s)(如果单次运行的检查花费的时间超过超时秒数,那么检查将被视为失败)

# --start-period=DURATION(默认值:0s)(需要时间引导的容器提供初始化时间。在此期间探测失败将不计入最大重试次数)

# --retries=N(默认值:3)(重试)

.NetCore 部署例子

FROM microsoft/dotnet

LABEL description="一个.NetCore+Docker部署的例子"

ENV baseDir=/app/dotnet

WORKDIR ${baseDir}/NetCoreApp

EXPOSE 12354

COPY . .

CMD ["dotnet","NetCoreApp.dll"]

docker-compose的编写

version: '3'

services:

    reactapp:

        build:

            context: .

        image: "718114245/reactapp"

        ports:

        - "12358:12354"

猜你喜欢

转载自blog.csdn.net/u014690615/article/details/84205510