侧边栏壁纸
博主头像
口鸟人 博主等级

言念君子 . 温其如玉

  • 累计撰写 39 篇文章
  • 累计创建 16 个标签
  • 累计收到 14 条评论

目 录CONTENT

文章目录

Dockerfile

koniaoer
2024-05-25 / 1 评论 / 0 点赞 / 67 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2024-05-31,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

dokerfile的作用就是自定义docker镜像每一层的作用

基础指令

FROM

FROM指令用于指定其后构建新镜像所使用的基础镜像。FROM指令必是Dockerfile文件中的首条命令,启动构建流程后,Docker将会基于该镜像构建新镜像,FROM后的命令也会基于这个基础镜像

RUN

RUN用于在镜像容器中执行命令,RUN指令创建的中间镜像会被缓存,并会在下次构建中使用,一般后面跟着shell指令

ADD

ADD用于复制构建环境中的文件或目录到镜像中。<src>是源文件位置可以是一个构建上下文中的文件或目录,也可以是一个URL,但不能访问构建上下文之外的文件或目录,<dest>来指定目标位置

COPY

COPY同样用于复制构建环境中的文件或目录到镜像中。COPY指令非常类似于ADD,不同点在于COPY只会复制构建目录下的文件,不能使用URL也不会进行解压操作

WORKDIR

WORKDIR用于在容器内设置一个工作目录,通过WORKDIR设置工作目录后,Dockerfile中其后的命令RUNCMDENTRYPOINTADDCOPY等命令都会在该目录下执行。在使用docker run运行容器时,可以通过-w参数覆盖构建时所设置的工作目录

EXPOSE

EXPOSE用于指定容器在运行时监听的端口:EXPOSE <port> [<port>...] 。EXPOSE并不会让容器的端口访问到主机。要使其可访问,需要在docker run运行容器时通过-p来发布这些端口,或通过-P参数来发布EXPOSE导出的所有端口

CMD

CMD用于指定在容器启动时所要执行的命令。CMD在Dockerfile文件中仅可指定一次,指定多次时,会覆盖前的指令

实践

一.创建Dockerfile(名字必须是dockerfile)

#写镜像来源
FROM nginx
#更改配置文件
RUN echo '<meta charset=utf8>koniaoer_docker.' > /usr/share/nginx/html/index.html:;


docker build .
#运行dockerfile


运行nginx

进阶指令

LABEL

LABEL用于为镜像添加元数据,元数以键值对的形式指定,一条LABEL指定可以指定一或多条元数据,指定多条元数据时不同元数据之间通过空格分隔

ENV

ENV用于设置环境变量,其有以下两种设置形式:

ENV <key> <value>
ENV <key>=<value> ...

这些环境变量不仅可以构建镜像过程(在ENV命令之后)使用,使用该镜像创建的容器中也可以使用。

VOLUME

VOLUME用于创建挂载点,即向基于所构建镜像创始的容器添加卷:VOLUME ["/data"]。一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统

USER

USER用于指定运行镜像所使用的用户,用户可以使用用户名、UID或GID,或是两者的组合。

使用USER指定用户后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT都将使用该用户。镜像构建完成后,通过docker run运行容器时,可以通过-u参数来覆盖所指定的用户

ARG

ARG用于指定传递给构建运行时的变量

ONBUILD

ONBUILD用于设置镜像触发器,当所构建的镜像被用做其它镜像的基础镜像,该镜像中的触发器将会被钥触发

STOPSIGNAL

STOPSIGNAL用于设置停止容器所要发送的系统调用信号:STOPSIGNAL signal。所使用的信号必须是内核系统调用表中的合法的值,如:9SIGKILL

SHELL

SHELL用于设置执行命令(shell式)所使用的的默认shell类型:SHELL ["executable", "parameters"]SHELL在Windows环境下比较有用,Windows下通常会有cmdpowershell两种shell,可能还会有sh

0

评论区