Dockerfile部署JDK、Tomcat、Nginx

一、环境准备工作

安装包准备:

apache-tomcat-8.5.42.tar.gz
jdk-8u121-linux-x64.tar.gz
nginx-1.11.1.tar.gz

二、编写安装JDK、Tomcat服务的Dockerfile

[root@rbtnode1 zhasj_docker]# cat Dockerfile 
#基础镜像centos7.2.1511系统
FROM    centos:7.2.1511
#作者联系方式
MAINTAINER zhaosj 178311232**@163.com

#在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在则会创建目录
WORKDIR /zhasj_docker

#解压缩tomcat和解压缩JDK
##复制命令,把jdk安装文件复制到镜像中.
##语法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相对路径
ADD     apache-tomcat-8.5.42.tar.gz /zhasj_docker
ADD     jdk-8u121-linux-x64.tar.gz /zhasj_docker

#设置环境变量

ENV     JAVA_HOME=/zhasj_docker/jdk1.8.0_121
ENV     CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV     PATH $JAVA_HOME/bin/$PATH
ENV     TOMCAT_HOME=/zhasj_docker/tomcat
#监听8080端口
EXPOSE  8080

#启动tomcat服务,保持docker容器运行
ENTRYPOINT      /zhasj_docker/apache-tomcat-8.5.42/bin/startup.sh && tailf /zhasj_docker/apache-tomcat-8.5.42/logs/catalina.out

#验证JDK,容器启动时需要执行的命令
CMD ["java","-version"]

三、执行构建命令构建(tomcat+jdk)服务镜像

[root@rbtnode1 zhasj_docker]# docker build -t tomcat_jdk:v8.5-1.8 .

构建完成后查看镜像

[root@rbtnode1 zhasj_docker]# docker images

四、创建并启动容器(tomcat+jdk)

# docker run -it -d --name xenodochial_hugle -p 192.168.1.52:8090:8080/tcp tomcat_jdk:v8.5-1.8

五、编写安装nginx服务的Dockerfile

[root@rbtnode1 zhasj_docker]# cat Dockerfile
FROM centos:7.2.1511
MAINTAINER zhaosj [email protected]
#安装依赖
ADD nginx-1.11.1.tar.gz /usr/local/src/
RUN useradd -M -s /sbin/nologin nginx
RUN yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel && rm -rf /var/cache/yum/* && cd /usr/local/src/nginx-1.11.1 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_sub_module && make && make install && mkdir -p /data/web && echo "nginx is running in docker" > /data/web/index.html && sed -ri 's@#(user  )nobody@\1nginx@' /usr/local/nginx/conf/nginx.conf && sed -ri 's@(worker_processes  )1@\1auto@' /usr/local/nginx/conf/nginx.conf && sed -ri 's@#(error_log  logs/error.log  )info@\1warn@' /usr/local/nginx/conf/nginx.conf && sed -ri '21,25s@#@@' /usr/local/nginx/conf/nginx.conf && sed -ri '44s@html@/data/web@' /usr/local/nginx/conf/nginx.conf && \
sed -ri '3a daemon off;' /usr/local/nginx/conf/nginx.conf
EXPOSE 80 443
CMD /usr/local/nginx/sbin/nginx

六、执行构建命令构建(nginx)服务镜像

[root@rbtnode1 zhasj_docker]#docker build -t nginx:v1.0 .

构建完成后查看镜像

[root@rbtnode1 zhasj_docker]# docker images

七、创建并启动容器(nginx)

[root@rbtnode1 zhasj_docker]# docker run -it -d --name nginx_server -p 192.168.1.52:8099:80/tcp nginx:v1.0
8bf322884b1ee0718e2e9bb7ab3ffc8ad8c1e01bbd95bac952a08c06e57783fa

Guess you like

Origin blog.csdn.net/zhanglixin999/article/details/121852981