创建镜像的语法:
FROM 指定基础镜像的来源
格式 FROM <image>:<tag>
第一条指令必须为FROM,并且, 如果在同一个dockerfile中创建多个镜像时,可以使用多个FROM(每个镜像一次)
MAINTAINET
格式 MAINTAINET <name>
MAINTAINER 作者 指定维护者
RUN
格式 RUN <command> 或者 RUN [" “,” "] 执行的是sh命令
每条命令将在当前镜像基础上执行 并提交为新的镜像
CMD
格式 CMD <command> 或者 CMD [" “,” "] 执行命令exec 一个dockerfile只有一个
若有多条,只执行最后一条
EXPOSE
EXPOSE <port> 告诉服务暴露端口 在容器启动时需要通过-p 做端口映射
ENV
格式 ENV <key>\ <value> 添加环境变量
指定环境变量会被RUN指令使用 并在容器运行时保存
ADD
格式 ADD <src> <des\t> 添加镜像文件 会自动解压
src 可以是dockerfile的相对路径,或URL,或 tar.gz
COPY
格式 <src> <dest> 复制宿主机src 到容器中的dest
ENTRYPOINT
格式 ENTRYPOINT ["",""] 配置容器启动后执行的命令 并且不可被docker run 提供的的参数覆盖
只能有一个,多个执行最后一个
VOLUME
格式 VOLUME ["",""] 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库
WORKDIR
格式 WORKDIR /home 设置为(RUN ,CMD ,ENTRYPOINT)工作路径
可以有多个
USER
指定运行容器时的用户或UID
ONBUILD
格式 ONBUILD [instruction] 配置当前所创建的镜像作为其他的新创建镜像的基础镜像时,所执行的操作指令
dockerfile 示例:
FROM python:3.8.5-alpine
# 设置国内源
RUN pip install --no-cache-dir pqi
RUN pqi use aliyun
WORKDIR /usr/src/app
COPY ./igv.js-flask-master/ /usr/src/app/
RUN cd /usr/src/app/ && pip install --no-cache-dir -r requirements.txt
#EXPOSE 80
# ADD . ./
# RUN ls -l
CMD /usr/local/bin/python /usr/src/app/run.py