这里我们使用docker的可迁移性将一些本地构建的docker镜像打包到生产环境中。
1:本地构建docker镜像
1.1 编写Dockerfile
FROM centos
MAINTAINER 18056601738@163.com
ARG BB="httpd-2.4.41"
##安装清理
RUN yum clean all
WORKDIR /usr/local/software/ab
##copy最新tar到目前位置
COPY $BB.tar.gz $BB.tar.gz
COPY pcre-8.43.tar.gz pcre-8.43.tar.gz
COPY apr-1.7.0.tar.gz apr-1.7.0.tar.gz
COPY apr-util-1.6.1.tar.gz apr-util-1.6.1.tar.gz
###解压 安装
RUN tar -vxf $BB.tar.gz && rm -rf $BB.tar.gz
RUN tar -vxf apr-1.7.0.tar.gz && rm -rf apr-1.7.0.tar.gz
RUN tar -vxf apr-util-1.6.1.tar.gz && rm -rf apr-util-1.6.1.tar.gz
RUN tar -vxf pcre-8.43.tar.gz && rm -rf pcre-8.43.tar.gz
##安装ab依赖 构建环境
RUN yum -y install gcc gcc-c++ expat-devel openssl-devel make
##安装pcre
RUN cd /usr/local/software/ab/pcre-8.43 && \
./configure --prefix=/usr/local/pcre && make && make install
##安装apr
RUN cd /usr/local/software/ab/apr-1.7.0 && \
./configure --prefix=/usr/local/apr && make && make install
##安装apr util
RUN cd /usr/local/software/ab/apr-util-1.6.1 && \
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
##安装httppd
RUN cd $BB \
#配置
&& ./configure \
--prefix=/usr/local/apache \
--enable-mods-shared=all \
--with-apr=/usr/local/apr/ \
--with-apr-util=/usr/local/apr-util/ \
--with-pcre=/usr/local/pcre \
##安装
&& make && make install
ENV PATH /usr/local/apache/bin:$PATH
CMD ["/bin/bash"]
当前文件目录格式:

1.2:构建本地docker镜像
##创建镜像名为ab/v1的镜像
docker build -t ab/v1 .
1.3:验证ab是否可正常使用
//启动容器 并进入
docker run --name ab -it ab/v1
//在容器内执行ab
ab
出现下列代表可正常执行

2:迁移本地镜像到生产环境
2.1将本地镜像打成tar包
##命令解释 docker save -o 打包成tar名 镜像名
docker save -o ab.tar ab/v1
执行上述命令后的目录结构:

2.2:生产环境中使用
将生成的ab.tar copy到生产环境中并加载到docker中
##导入镜像
docker load -i ab.tar
##查看docker 中是否包含该image
docker images
##创建一个名为ab的容器
docker run --name ab -i -t -d ab/v1
##测试使用ab功能
##以命令行进入容器
docker exec -it ab /bin/bash
##进行压测
ab -n 10000 -c 20 "url"
343



被折叠的 条评论
为什么被折叠?



