【读书笔记-首页】基于世界500强的高薪实战Kubernetes课程
第4章 dockerfile基础篇-基本语法
- dockerfile:构建镜像的文本文件
1、FROM
作用:基础镜像来源
2、MAINTAINER
作用:作者信息
3、RUN
作用:构建过程中运行的命令
4、EXPOSE
作用: 申明端口
格式:
EXPOSE <端口 1> [<端口 2>…]
5、CMD
作用:为启动的容器 指定默认要运行的程序 (会被 docker run 覆盖)
两种模式
6、ENTERYPOINT
作用:为启动的容器 指定默认要运行的程序 (会被 docker run –entrypoint 覆盖)
格式:
可以搭配 CMD 命令使用:
一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 传参
示例:
> 假设已通过 Dockerfile 构建了 nginx:test 镜像:
FROM nginx
ENTRYPOINT [“nginx“, “-c“] # 定参
CMD [“/etc/nginx/nginx.conf“] # 变参
1、不传参运行
nginx –c /etc/nginx/nginx.conf
2、传参运行 (new.conf 覆盖nginx.conf)
$ docker run nginx:test -c /etc/nginx/new.conf
(/etc/nginx/new.conf:假设容器内已有此文件)
7、COPY
作用:复制文件或者目录到容器
格式:
[–chown=<user>:<group>]:
<源路径>:
源文件/目录,支持 Go 的 filepath.Match 通配符
例如:
COPY hom* /mydir/
COPY hom?.txt /mydir/
<目标路径>:
8、ADD
作用:功能类似COPY,官方推荐使用 COPY
优点:
缺点:
在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。
例:替换/usr/share/nginx 下的 index.html
cd /root/dockerfile/test1
cat dockerfile
FROM centos
MAINTAINER xianchao
RUN yum install wget -y
RUN yum install nginx -y
COPY index.html /usr/share/nginx/html/
EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
实战:
# 构建镜像,并打标签(-t <标签名> ,其中t为tag)
docker build -t="dockerfile/copy:v1" .
# 根据镜像运行容器,-d <后台运行> ,-p <容器内端口> ,--name <容器名>
docker run -d -p 80 --name html3 dockerfile/copy:v1
# 查看所有镜像 , grep <过滤名称>
docker ps | grep html3
显示如下:
478868402ac4 dockerfile/copy:v1 "/usr/sbin/nginx -
g …" 15 seconds ago Up 12 seconds 0.0.0.0:32771->80/tcp html3
访问页面
curl 192.168.40.180:32771 显示的就是替换后的页面
9、VOLUME
作用:定义匿名数据卷
格式:
-
VOLUME [“<路径 1>”, “<路径 2>”…]
-
VOLUME <路径>
10、WORKDIR
作用:指定工作目录 (必须提前创建好)(填写绝对路径)
格式:
-
WORKDIR <工作目录路径>
示例
11、ENV
作用:设置环境变量
格式:
示例
在后续的指令中可以通过 $NODE_VERSION 引用: ENV NODE_VERSION 6.6.6
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz"
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"
12、USER
作用:切换后续命令执行的用户(用户和用户组必须存在)
格式:
-
USER <用户名>[:<用户组>]
示例:
USER daemon
USER nginx
USER user
USER uid
USER user:group
USER uid:gid
USER user:gid
USER uid:group
13、ONBUILD
作用:用于延迟构建命令的执行
Dockerfile 里用 ONBUILD 指定的命令,在本次构建镜像的过程中不会执行(假设镜像为 test-build)。当有新的 Dockerfile 使用了之前构建的镜像 FROM test-build ,构建时会执行 test-build 的 Dockerfile 里的 ONBUILD 指定的命令。
格式:
- ONBUILD <其它指令>
场景:为镜像添加触发器
当一个镜像被其他镜像作为基础镜像时需要写上 OBNBUILD ,会在构建时插入触发器指令
14、LABEL
作用:给镜像添加元数据(metadata)
格式:
示例:
LABEL org.opencontainers.image.authors="lijiong"
15、HEALTHCHECK
作用:指定某个程序或者指令来监控 docker 容器服务的运行状态
格式:
-
HEALTHCHECK [选项] CMD <命令> : 参考 CMD 的用法
16、ARG
作用:构建参数,与 ENV 作用域不同
格式:
-
ARG <参数名>[=<默认值>]
用于。
格式:
原文地址:https://blog.csdn.net/ladymorgana/article/details/134683735
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_9254.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!