dockerfile

构建镜像的所有文件都需要在Dockerfile文件所在目录下。

Dockerfile实例:
FROM scratch
#FROM alpine:3.19

LABEL author=fei version=1.0

ADD alpine-minirootfs-3.19.1-x86_64.tar.gz /

COPY Shanghai /usr/share/zoneinfo/Asia/Shanghai
COPY repositories /etc/apk/repositories

ENV version=1.0 HOME=/root

RUN apk update && apk add bash curl && mkdir /data && \
addgroup -S -g 88 algroup && adduser -G algroup -u 88 -S -s /sbin/nologin aluser

VOLUME ["/opt","/data"]

WORKDIR /data

USER aluser

CMD ["/bin/sh"]

#ENTRYPOINT ["/nginx.sh"]

执行构建镜像命令:docker build . -t alpine:latest --no-cache 

 

命令 说明
FROM  指定基础镜像,此指令通常必需放在Dockerfile文件第一个非注释行,可以指定空镜像:scratch。
LABEL 指定镜像元数据,一个镜像可以有多个label ,还可以写在一行中,即多标签写法。
ADD 可以是Dockerfile所在目录的一个相对路径;也可是一个 URL;还可是一个 tar 文件(自动解压) 。
COPY 复制本地宿主机的到容器中的,如果是目录,则其内部文件或子目录会被递归复制,但目录自身不会被复制。
RUN
指令用来在构建镜像阶段需要执行 FROM 指定镜像所支持的Shell命令。
ENV 设置环境变量,会被后续指令(如:ENV,ADD,COPY,RUN等)通过$KEY或${KEY}进行引用。
ARG
在build 阶段指定变量,ARG仅在构建镜像时生效,容器运行时并不存在ARG定义的环境变量。 
WORKDIR 为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录,容器运行后进入容器内WORKDIR指定的默认目录。
USER 指定容器运行用户 ,用户必须是事先建立好的。,如果没有指定 USER,默认是 root 身份执行。
VOLUME 将挂载容器目录,容器被删除时,挂载目录的数据将被保存,数据保存在:/var/lib/docker/volumes/容器ID
CMD
容器启动命令 ,CMD 用来指定启动容器时默认执行的一个命令,且其运行结束后,容器也会停止。
ENTRYPOINT
入口点,配置容器启动后执行的命令及参数。若和CMD并存,CMD的值将会成为ENTRYPOINT的参数。
ONBUILD
可以用来配置当构建当前镜像的子镜像时,会自动触发执行的指令,但在当前镜像构建时,并不会执行,即
延迟到子镜像构建时才执行。也即当拿此Dockerfile构建的镜像作为基础镜像时,对子镜像进行操作。
posted @   teiperfly  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示