一:创建目录
mkdir /root/tomcat
chmod 777 /root/
chmod 777 /root/tomcat
或者chmod -R 777 /root
这里的无效选项是因为我想递归修改root目录及root目录文件以下的权限
chmod :-R 递归修改指定目录下所有子目录和文件的权限
二:将jdk和apache压缩包拷进/root/tomcat
在/root/tomcat目录下创建文件c.txt和Dockerfile
三:修改Dockerfile内容
FROM centos:7
MAINTAINER mrzhme<mrzhme@vip.qq.com>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
COPY c.txt /usr/local/cincontainer.txt
#把java与tomcat添加到容器中
ADD jdk-8-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.40.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_301
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.40
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.40
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-8.5.40/bin/startup.sh" ]
# CMD ["/usr/local/apache-tomcat-8.5.40/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-8.5.40/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.40/bin/logs/catalina.ou
四:构建镜像
Dockerfile的标准文件名就是Dockerfile,当当前目录下用于构建镜像的Dockerfile的文件名是标准文件名时,可以省略-f+路径。这时Docker会直接读取当前目录下名为Dockerfile的文件进行镜像的构建。
docker build -t mrlinxitomcat9 .
解决BUG——docker构建镜像时,yum安装卡住
原因:告警:ip转发功能未打开,网络将无法生效
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
docker images
五:创建容器并启动
docker run -d -p 8888:8080 --name myt9 -v /root/tomcat/test:/usr/local/apache-tomcat-8.5.40/webapps/test -v /root/tomcat/tomcat9logs/:/usr/local/apache-tomcat-8.5.40/logs --privileged=true mrlinxitomcat9
docker ps
六:开启防火墙对应端口
firewall-cmd --permanent --zone=public --add-port=8888/tcp
七: 测试
参考文献:
https://www.cnblogs.com/xiangningdeguang/p/16962137.html