FROM centos:7
MAINTAINER lkk
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum -y install epel-release
RUN yum -y install gcc gcc-c++ make libxml2 libxml2-devel wget
RUN wget http://docs.php.net/distributions/php-5.6.36.tar.gz
RUN tar zxf php-5.6.36.tar.gz
RUN cd php-5.6.36
RUN ./configure --prefix=/usr/local/php
RUN make -j 4
RUN make install
优化如下:
mkdir /root/phpdir
cd /root/phpdir
将php-5.6.27.tar.gz包上传到/root/phpdir/
进入/root/phpdir目次
vim Dockerfile
添加:
FROM centos:7
MAINTAINER lkk
RUN rm -rf /etc/yum.repos.d/* && curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum -y install epel-release && yum -y install gcc gcc-c++ make libxml2 libxml2-devel wget
ADD ./php-5.6.27.tar.gz /
RUN cd /php-5.6.27 && ./configure --prefix=/usr/local/php && make -j 4 && make install
-j(表示 job 的数目)参数可以对项目在进行并行编译。
make -j 4,让make 最多允许 4 个编译命令同时实行,这样可以更有效的使用 CPU 资源。在多核 CPU 上,适当的进行并行编译还是可以明显进步编译速率的,但并行的使命不宜太多,一般是以 CPU 的核心数目标两倍为宜
(2)清理无用数据
一次RUN形成新的一层,如果没有在同一层删除,无论文件是否末了删除,都会带到下一层,以是要在每一层清理对应的残留数据,减小镜像巨细。
把生成容器镜像过程中部署的应用软件包做删除处理
vim Dockerfile
添加粗体部门内容:
FROM centos:7
MAINTAINER lkk
RUN rm -rf /etc/yum.repos.d/* && curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum -y install epel-release && yum -y install gcc gcc-c++ make libxml2 libxml2-devel wget && yum clean all && rm -rf /var/cache/yum/*
ADD ./php-5.6.27.tar.gz /
RUN cd /php-5.6.27 && ./configure --prefix=/usr/local/php && make -j 16 && make install && rm -rf /php*
生成镜像
docker build -t php:v1 .
四、通过Dockerfile方式创建tomcat镜像
1、创建目次准备相关文件
mkdir tomcatdir
cd tomcatdir/
echo "tomcat test page" > index.html