
云原生
利用kurise做日志采集使用promtail做sidecar采集日志
利用OpenKurise中的kruise做日志采集,原来我使用的是filebeat作为sidecar采集日志的,虽然采集没有什么问题,但是通过es进才看日志就比较繁琐了,这次实验p
[root@www.wulaoer.org wulaoer]# cat Dockerfile
FROM centos:7.2.1511
RUN echo "Asia/Shanghai" > /etc/timezone;
RUN mkdir /usr/local/java
ADD jdk-8u201-linux-x64.tar.gz /usr/local/java/
RUN ln -s /usr/local/java/jdk1.8.0_201 /usr/local/java/jdk
ENV JAVA_HOME=/usr/local/java/jdk
ENV JRE_HOME=${JAVA_HOME}/jre
ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH=${JAVA_HOME}/bin:$PATH
我这里是做了一个jdk的镜像,然后把镜像中的时间定义了一下和宿主机的时间一样,这样就能保证生成的日志时间和系统时间一致了
RUN echo "Asia/Shanghai" > /etc/timezone;把镜像的时区修改成上海,这样保证了使用该镜像生成容器时时间使用的是上海时区,不会和北京时间相差八个小时。
RUN mkdir /usr/local/java是创建了一个目录,用来存放java文件
COPY jdk-8u201-linux-x64.tar.gz /usr/local/java/是把本地的java文件copy到镜像中
RUN ln -s /usr/local/java/jdk1.8.0_201 /usr/local/java/jdk做了一个软连接,到jdk
ENV JAVA_HOME=/usr/local/java/jdk
ENV JRE_HOME=${JAVA_HOME}/jre
ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH=${JAVA_HOME}/bin:$PATH
定义了jdk的变量,Dockerfile的注解已经说明白了,下面我们生存一个生成一个新的镜像看看。
[root@www.wulaoer.org wulaoer]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@www.wulaoer.org wulaoer]# docker build -t jdk1.8:latest .
Sending build context to Docker daemon 312.3MB
Step 1/9 : FROM centos:7.2.1511
7.2.1511: Pulling from library/centos
a8c7037c15e9: Pull complete
Digest: sha256:50cca1e74da4b6a4eb4ade029c8fdd4ee8564776801914d9bd89df8c6344add0
Status: Downloaded newer image for centos:7.2.1511
---> 9aec5c5fe4ba
Step 2/9 : RUN echo "Asia/Shanghai" > /etc/timezone;
---> Running in f583a5e8884a
Removing intermediate container f583a5e8884a
---> cd12eb279082
Step 3/9 : RUN mkdir /usr/local/java
---> Running in 5e5eee205ecf
Removing intermediate container 5e5eee205ecf
---> 098dafa44c0d
Step 4/9 : COPY jdk-8u201-linux-x64.tar.gz /usr/local/java/
---> 53736578666c
Step 5/9 : RUN ln -s /usr/local/java/jdk1.8.0_201 /usr/local/java/jdk
---> Running in 1e9410d5088c
Removing intermediate container 1e9410d5088c
---> fc72c676bce5
Step 6/9 : ENV JAVA_HOME=/usr/local/java/jdk
---> Running in eb6f910441a3
Removing intermediate container eb6f910441a3
---> 80db22c4f107
Step 7/9 : ENV JRE_HOME=${JAVA_HOME}/jre
---> Running in 684b6bcbcfdf
Removing intermediate container 684b6bcbcfdf
---> 2943bd1bf795
Step 8/9 : ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
---> Running in 15fd27ee5e91
Removing intermediate container 15fd27ee5e91
---> 94cd0b83a5ba
Step 9/9 : ENV PATH=${JAVA_HOME}/bin:$PATH
---> Running in e8b76b8c26d7
Removing intermediate container e8b76b8c26d7
---> 9e6c3e788e52
Successfully built 9e6c3e788e52
Successfully tagged jdk1.8:latest
[root@www.wulaoer.org wulaoer]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jdk1.8 latest 9e6c3e788e52 14 seconds ago 386MB
centos 7.2.1511 9aec5c5fe4ba 14 months ago 195MB
创建成功的前提是需要的jdk-8u201-linux-x64.tar.gz必须和Dockerfile是一个目录下,不然会找不到jdk文件。如果Dockerfile和不在当前路径,可以使用-f参数,指定DOckerfile的路径
[root@www.wulaoer.org wulaoer]# docker build -t jdk1.8:latest /wulaoer/Dockerfile使用-t参数,可以定义新镜像的名称,例如上面的jdk1.8:latest,如果你的Dockerfile在git上可以使用
[root@www.wulaoer.org wulaoer]# docker build -t jdk1.8:latest github.com/creack/docker-firefox以上就是制作docker镜像的方法,可能Dockerfile的用法不清晰,没关系,下一个文章就是针对Dockerfile的用法的。
评论 0