linux怎么查看本机内存大小
219
2022-10-28
Dockerfile文件详解
博客目录 一、Dockerfile 1、什么是 Dockerfile 2、Dockerfile的作用 3、Dockerfile的基础结构 4、Dockerfile中常见的操作指令和作用 二、Dockerfile文件说明 1、FROM 2、MAINTAINER 3、RUN 4、ADD 5、COPY 6、CMD 7、ENTRYPOINT 8、LABEL 9、ENV 10、EXPOSE 11、VOLUME 12、WORKDIR 13、USER 14、ARG 15、ONBUILD
一、Dockerfile
1、什么是 Dockerfile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
2、Dockerfile的作用
安装dockerfile中的指令定义docker容器或者容器中的应用程序以及服务Dockerfile制作一个镜像模板安装模板统一生成容器
3、Dockerfile的基础结构
#开头的表示注释行,说明dockerfile中的指令维护者的信息镜像操作指令容器操作指令基础镜像信息
4、Dockerfile中常见的操作指令和作用
FROM:指定创建镜像的基础镜像 MAINTAINER:Dockerfile作者信息,一般写的是联系方式 RUN:运行Linux系统的命令使用 CMD:指定容器启动执行的命令;启动容器中的服务 LABEL:指定生成镜像的源数据标签 EXPOSE:指定镜像容器监听端口号;发布服务使用 ENV:使用环境变量 ADD:对压缩文件进行解压缩;将数据移动到指定的目录 COPY:复制宿主机数据到镜像内部使用 WORKDIR:切换到镜像容器中的指定目录中 VOLUME:挂载数据卷到镜像容器中 USER:指定运行容器的用户 ARG:指定镜像的版本号信息 ONBUILD:创建镜像,作为其他镜像的基础镜像运行操作指令 ENTRYPOINT:指定运行容器启动过程执行命令,覆盖CMD参数
二、Dockerfile文件说明
1、FROM
指定基础镜像,必须为第一个命令
格式:
FROM
2、MAINTAINER
维护者信息
格式:
MAINTAINER
3、RUN
构建镜像时执行的命令
RUN用于在镜像容器中执行命令,其有以下两种命令执行方式:
shell执行
格式:
RUN
4、ADD
将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
格式:
ADD
5、COPY
功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
6、CMD
构建容器后调用,也就是在容器启动时才进行调用。
格式: CMD ["executable","param1","param2"] (执行可执行文件,优先) CMD ["param1","param2"] (设置了ENTRYPOINT,则直接调用ENTRYPOINT添加参数) CMD command param1 param2 (执行shell内部命令) 示例: CMD echo "This is a test." | wc - CMD ["/usr/bin/wc","--help"] 注: CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。
7、ENTRYPOINT
配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
格式: ENTRYPOINT ["executable", "param1", "param2"] (可执行文件, 优先) ENTRYPOINT command param1 param2 (shell内部命令) 示例: FROM ubuntu ENTRYPOINT ["top", "-b"] CMD ["-c"] 注: ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。
8、LABEL
用于为镜像添加元数据
格式:
LABEL
9、ENV
设置环境变量
格式:
ENV
10、EXPOSE
指定于外界交互的端口
格式:
EXPOSE
11、VOLUME
用于指定持久化目录
格式: VOLUME ["/path/to/dir"] 示例: VOLUME ["/data"] VOLUME ["/var/"/var/log/apache2", "/etc/apache2" 注: 一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能: 1 卷可以容器间共享和重用 2 容器并不一定要和其它容器共享卷 3 修改卷后会立即生效 4 对卷的修改不会对镜像产生影响 5 卷会一直存在,直到没有任何容器在使用它
12、WORKDIR
工作目录,类似于cd命令
格式: WORKDIR /path/to/workdir 示例: WORKDIR /a (这时工作目录为/a) WORKDIR b (这时工作目录为/a/b) WORKDIR c (这时工作目录为/a/b/c) 注: 通过WORKDIR设置工作目录后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行。在使用docker run运行容器时,可以通过-w参数覆盖构建时所设置的工作目录。
13、USER
指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
格式: USER user USER user:group USER uid USER uid:gid USER user:gid USER uid:group 示例: USER www 注: 使用USER指定用户后,Dockerfile中其后的命令RUN、CMD、ENTRYPOINT都将使用该用户。镜像构建完成后,通过docker run运行容器时,可以通过-u参数来覆盖所指定的用户。
14、ARG
用于指定传递给构建运行时的变量
格式:
ARG
15、ONBUILD
用于设置镜像触发器
格式: ONBUILD [INSTRUCTION] 示例: ONBUILD ADD . /app/src ONBUILD RUN /usr/local/bin/python-build --dir /app/src 注: 当所构建的镜像被用做其它镜像的基础镜像,该镜像中的触发器将会被钥触发
————————————本文到此结束,感谢观看——————————————
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~