通常编译安装一个软件的基本步骤如下:
- 安装依赖包
- ./configure 检查环境依赖
- make 编译
- make install 安装
构建Nginx 镜像:
Dockerfile内容如下:
FROM centos:7
LABEL maintainer www.ctnrs.com
RUN yum install -y gcc gcc-c++ make \
openssl-devel pcre-devel gd-devel \
iproute net-tools telnet wget curl && \
yum clean all && \
rm -rf /var/cache/yum/*ADD nginx-1.15.5.tar.gz /
RUN cd nginx-1.15.5 && \
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module && \
make -j 4 && make install && \
mkdir /usr/local/nginx/conf/vhost && \
cd / && rm -rf nginx* && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeENV PATH $PATH:/usr/local/nginx/sbin
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
docker build -t nginx:v2 .
docker run -d --name web3 -p 90:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx:v2
访问为默认页面:
原因:网站根目录不同,yum与源码安装不同导致
修改根目录,重新启动:
docker run -d --name web4 -p 91:80 -v /opt/wwwroot/:/usr/local/nginx/html nginx:v
构建Tomcat镜像:
Dockerfile内容如下:
FROM centos:7
MAINTAINER www.ctnrs.comENV VERSION=8.5.43
RUN yum install java-1.8.0-openjdk wget curl unzip iproute net-tools -y && \
yum clean all && \
rm -rf /var/cache/yum/*ADD apache-tomcat-${VERSION}.tar.gz /usr/local/
RUN mv /usr/local/apache-tomcat-${VERSION} /usr/local/tomcat && \
sed -i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeENV PATH $PATH:/usr/local/tomcat/bin
WORKDIR /usr/local/tomcat
EXPOSE 8080
CMD ["catalina.sh", "run"]
docker build -t tomcat:v1 .
docker run -d -p 8081:8080 tomcat:v1
访问是默认页面:
docker ps -l
docker exec -it 6a55d24ef8de bash
cd /usr/local/tomcat/webapps/ROOT
vi index.jsp
修改后访问成功:
启动另一个tomcat容器挂载之前的目录,访问成功
docker run -d -p 8082:8080 -v /opt/wwwroot/:/usr/local/tomcat/webapps/ROOT tomcat:v1