下载准备的资源自定义tomcat镜像、启动、访问遇到的问题
问题1:提示加载插件中,陷入长时间的等待,实际上已经出错了。错误消息:Loaded plugins: fastestmirror, ovl
下载准备的资源tomcat下载:https://tomcat.apache.org/download-90.cgi
jdk8下载:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
自定义tomcat镜像、启动、访问
- 创建目录mytomcat,并切入到目录
编辑Dockerfile文件
Dockfile文件
FROM centos:7 MAINTAINER lengcz##########RUN命令的顺序会影响执行,会出现卡顿报错的情况########## #设置工作访问时候的WORDKDIR路径 ENV MYPATH /usr/local WORKDIR $MYPATH #安装vim RUN yum -y install vim #安装ipconfig RUN yum -y install net-tools ################################################################ #把主机的文件复制到容器/usr/local/目录 COPY readme.txt /usr/local/readme.txt #将jdk和tomcat添加到容器 ADD jdk-8u202-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.60.tar.gz /usr/local/ #########这里的设置工作路径和RUN指令需要放到前面,否则执行会卡顿出错########### #设置工作访问时候的WORDKDIR路径 #ENV MYPATH /usr/local/ #WORKDIR $MYPATH #安装vim #RUN yum -y install vim #安装ipconfig #RUN yum -y install net-tools ################################################################ #设置java和tomcat环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_202 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.60 ENV CATALINA_base /usr/local/apache-tomcat-9.0.60 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_base/bin #设置端口 EXPOSE 8080 CMD echo "----END---" #启动运行tomcat CMD /usr/local/apache-tomcat-9.0.60/bin/startup.sh&&tail -f /usr/local/apache-tomcat-9.0.60/logs/catalina.out
将其他需要为文件存放到同目录
构建镜像成功后,查看自己的镜像
docker build -t mytomcat01 . #构建镜像(不要把最后的点漏掉了)
- 启动镜像(数据卷挂载的方式启动),访问测试
#启动 docker run -d -p 8888:8080 --name mytomcat8888 -v /home/mytomcat/work/tomcat/myproject:/usr/local/apache-tomcat-9.0.60/webapps/myproject -v /home/mytomcat/work/tomcat/tomcat9logs/:/usr/local/apache-tomcat-9.0.60/logs --privileged=true mytomcat01
备注:Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个–privileged=true参数即可
发布项目(仅测试),由于做了数据卷挂载,这里找到主机的挂载路径,上传一个测试的html文件。
由于做了卷挂载,我们可以直接在主机上传项目进行发布
访问测试
遇到的问题 问题1:提示加载插件中,陷入长时间的等待,实际上已经出错了。错误消息:Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
解决办法:
把RUN 的命令放到前面执行



