docker的镜像制作及部署

docker的镜像制作及部署(以Flume为例)

1.创建docker/docker-flume目录(以下所有操作在该目录下完成)

cd /usr

mkdir -p docker/docker-flume

cd  docker/docker-flume

2.准备制作镜像需要的tar包及配置文件

2.1.准备Dockerfile文件(新建的)

vi Dockerfile

FROM centos

 

#安装jdk1.8

ADD jdk-8u181-linux-x64.tar.gz /usr/etc

ENV JAVA_HOME /usr/etc/jdk1.8.0_181

ENV CLASSPATH $JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH $JAVA_HOME/bin:$PATH

 

#安装flume

ADD apache-flume-1.8.0-bin.tar.gz /usr/flume

COPY flume.conf /usr/flume/apache-flume-1.8.0-bin/conf

RUN mkdir /testDir

COPY start-flume.sh /usr/local/bin/

CMD ["/bin/bash","/usr/local/bin/start-flume.sh"]

2.2.准备flume.conf文件

vi flume.conf

# 指定Agent的组件名称

a1.sources = r1

a1.sinks = k1

a1.channels = c1

 

# 指定Flume source(要监听的路径)

a1.sources.r1.type = spooldir

#先创建这个目录

a1.sources.r1.spoolDir = /testDir

 

# 指定Flume sink

a1.sinks.k1.type = logger

 

# 指定Flume channel

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

 

# 绑定source和sink到channel上

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

2.3.准备start-flume.sh启动脚本

vi start-flume.sh

!/bin/sh

 

/usr/flume/apache-flume-1.8.0-bin/bin/flume-ng agent  -n a1 -c /usr/flume/apache-flume-1.8.0-bin/conf -f /usr/flume/apache-flume-1.8.0-bin/conf/flume.conf &

 

for((i=1;i<=10;))

do

sleep 1

done

 

2.4.准备所需要的jdk和flume的tar包(flume的tar包是flume-env.sh配置好jdk路径之后重新打包而成的,所以dockerfile中省略了为flume配置文件配置jdk路径这一步)

3.制作镜像

docker build -t . (名字自己设置,不要忘了最后有个.)

4.查看镜像是否制作完成

docker images

5.开启一个容器运行镜像

docker run -t

6.查看容器是否开启成功

docker container ls

7.进入容器测试配置flume是否生效

docker exec -it    /bin/bash

8.测试

向监控目录写入文件,在flume的log的目录下的flume.log日志中查看结果

 

你可能感兴趣的:(docker的镜像制作及部署)