213123 发表于 2016-4-13 13:06:16

用dockerfile配置生成docker image并实现容器部署(redis服务)

一、Dockerfile文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#Version 1.0 at 2016-04-12
#Author:http://www.iyunv.com

#Base images
FROM centos

#MAINTAINER
MAINTAINER http://www.iyunv.com/

#ADD
ADDtcl8.6.5-src.tar.gz /usr/local/src
ADDredis-3.0.7.tar.gz /usr/local/src
ADDCentOS-Base.repo/usr/local/src

#RUN
RUN \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN rm -rf /etc/yum.repos.d/*.repo
RUN mv /usr/local/src/*.repo/etc/yum.repos.d/
RUN yum clean all
RUN yum -y install wgetnet-tools gcc gcc-c++ make

#WORKDIR
WORKDIR /usr/local/src/tcl8.6.5/unix
RUN./configure --prefix=/usr   --without-tzdata   --mandir=/usr/share/man$([ $(uname -m) = x86_64 ] && echo --enable-64bit)
RUNmake&& \
      sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" \
            -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \
            -i tclConfig.sh
RUNmake test && make install && make install-private-headers && \
   ln -v -sf tclsh8.6 /usr/bin/tclsh && \
   chmod -v 755 /usr/lib/libtcl8.*.so
RUN echo -e "/lib \n /lib64 \n /usr/lib \n /usr/lib64 \n /usr/local/lib \n /usr/local/lib64 ">>/etc/ld.so.conf
RUNldconfig
WORKDIR /usr/local/src/redis-3.0.7
RUNmake
RUNmake install
RUNcpsrc/redis-trib.rb   /usr/local/bin/&& cp src/redis-server   /usr/local/bin/redis-server && chmod +x /usr/local/bin/redis-server
RUNmkdir /redisdata
RUN rm -rf /usr/local/src/{redis-3*,tcl*}
ADD redis.conf/etc/redis.conf
WORKDIR /root
RUN yum -y remove gcc gcc-c++ make
RUN ln -sf /dev/stdout/tmp/redis.log
VOLUME ["/redisdata"]

ENVREDIS_VERSION 3.0.7
ENVREDIS_PORT 6379
ENVREDIS_DATA /redisdata

EXPOSE 6379

CMD /usr/local/bin/redis-server   /etc/redis.conf




二、下载所需软件:

1
2
# ls
build.shCentOS-Base.repoDockerfileepel-7.reporedis-3.0.7.tar.gzredis.conftcl8.6.5-src.tar.gz




三、执行使用镜像:

1
docker build -t redis:v1 /opt/docker/redis





四、运行容器:


五、测试:

1
2
3
4
5
# echo "set key1http://www.iyunv.com/addblog.php" | redis-cli -c -p 4034 -h 192.168.12.81         
OK
# echo "get key1" | redis-cli -c -p 4034 -h 192.168.12.81                                             
"http://www.iyunv.com/addblog.php"
#





六、需要解决:
集群化配置。后面再测试。

页: [1]
查看完整版本: 用dockerfile配置生成docker image并实现容器部署(redis服务)