
云原生
利用kurise做日志采集使用promtail做sidecar采集日志
利用OpenKurise中的kruise做日志采集,原来我使用的是filebeat作为sidecar采集日志的,虽然采集没有什么问题,但是通过es进才看日志就比较繁琐了,这次实验p
FROM <image> #系统,可以是centos也可以是ubuntu FROM <image>:<tag> #系统:版本,默认不加版本就会选择的是最新版本这里需要注意两个不能同时使用,比如写了两个FROM,一个指定的系统,一个指定的是系统:版本,这样重复了。我们可以根据自己的需求写一个基础的镜像系统以及版本:
FROM centos:7.2.1511这是使用的Centos系统的7.2.1511版本,后面会把所有的Dockerfile命令总结一遍之后,我们使用我们创建好的Dockerfile命令构建一个自己的镜像。
MAINTAINER wolf27w@gmail.com MAINTAINER this is docker
RUN linux命令我们如果想在镜像中创建一个目录,或者安装一个nginx可以使用RUN,每执行一次就会在docker上新建一层,过多会导致镜像膨胀过大,所以可以使用&&进行连接,不过前提是执行的时候不出错。例如:
FROM centos
RUN mkdir /usr/local/python3
RUN mkdir /usr/local/python3/DevOps
RUN yum -y install gcc
可缩简为
RUN mkdir /usr/local/python3 \
&& mkdir /usr/local/python3/DevOps \
&& yum -y install gcc
这种创建文件是系统原本就有的命令,yum安装gcc不需要依赖其他的东西,所以这样的执行结果是没有问题的,build的镜像也不会出错。
ADD <src>... <dest> ADD ["<src>",... "<dest>"] 用于支持包含空格的路径 COPY [--chown=<user>:<group>] <源路径1>... <目标路径> COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]一般建议使用COPY复制,不过也要根据自己的环境,如果有tar文件可以使用ADD,不需要解压的可以使用COPY。
CMD ["executable","param1","param2"] (执行可执行文件,优先) CMD ["param1","param2"] (设置了ENTRYPOINT,则直接调用ENTRYPOINT添加参数) CMD command param1 param2 (执行shell内部命令)后面直接跟执行的语句,CMD和RUN的区别一个是在容器启动之前一个是容器启动之后。如果有多个CDM命令只执行最后一个。
FROM nginx ENTRYPOINT ["nginx", "-c"] # 定参 CMD ["/etc/nginx/nginx.conf"] # 变参如果不传参运行docker run nginx:test,在容器中会默认会启动nginx -c /etc/nginx/nginx.conf,如果传参运行
docker run nginx:test -c /etc/nginx/new.conf会把CMD中定义的参数覆盖掉,在容器中会执行的会是
nginx -c /etc/nginx/new.confENTRYPOINT搭配CMD使用时一般时使用CMD给ENTRYPOINT传参。
ENV <key> <value> #<key>之后的所有内容均会被视为其<value>的组成部分,因此,一次只能设置一个变量 ENV <key>=<value> ... #可以设置多个变量,每个变量为一个"<key>=<value>"的键值对,如果<key>中包含空格,可以使用\来进行转义,也可以通过""来进行标示;另外,反斜线也可以用于续行
ARG <参数名>[=<默认值>]
VOLUME ["<路径1>", "<路径2>"...] VOLUME <路径>在容器启动时可以使用-v参数修改挂载点。
EXPOSE <端口1> [<端口2>...]
WORKDIR <工作目录路径>
USER <用户名>[:<用户组>]
HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令 HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令 HEALTHCHECK [选项] CMD <命令> : 这边 CMD 后面跟随的命令使用,可以参考 CMD 的用法。
ONBUILD <其它指令>以上是dockerfile的所有命令,如有其他问题后期会补充回来,暂时就先写这么多吧。
评论 0