04、Docker学习,理论知识,第四天:DockerFile自定义Tomcat

Docker学习,理论知识,第四天:DockerFile自定义Tomcat

测试下面的两个保留字指令

xml 复制代码
3.7》、ADD  将宿主机目录下的文件拷贝进镜像且ADD命令自动处理URL和解压tar压缩包 
           ADD  centos-7-docker.tar.xz    
           (COPY直接拷贝,ADD拷贝+解压缩)
3.8》、COPY  类似ADD,拷贝文件和目录到镜像中             
           COPY src  desc  或 COPY["src","desc"]

案例:

xml 复制代码
1、创建tomcat9目录   mkdir tomcat9
2、创建文件  touch c.txt
3、将JDK和tomcat安装包的压缩包拷贝进上一步目录
	apache-tomcat-9.0.8.tar.gz
	jdk-8u171-linux-x64,tar.gz
4、在tomcat9下新建Dockerfile文件,目录内容:
	FROM centos
	MAINTAINER mytomcat_lee<james_taylor@126.com>
    #把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
    COPY c.txt /usr/local/cincontainer.txt
    #把java与tomcat添加到容器中
    ADD jdk-8u171-linux-x64,tar.gz
    ADD apache-tomcat-9.0.8.tar.gz
    #安装vim编辑器
   	RUN yum -y install vim
    #设置工作访问时候的workdir路径,登录落脚点
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    #配置java与tomcat环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_171
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
    ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
	#容器运行时监听的接口        
    EXPOSE 8080
    #启动运行tomcat
    #ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"]
    #CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
    CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out
        
5、构建build镜像
        docker build Dockerfile -t mytomcat9 .
        (-f 目录file )
6、测试docker images
7、运行 
    docker run -d -p 9080:8080 --name myt9 
    -v /opt/tomcat9/test:/usr/local/apache-tomcat-9.0.8/webapps/test 
    -v /opt/tomcat9/tomcat9logs/:/usr/local/apache-tomcat-9.0.8/logs 
    --privileged=true 
    mytomcat9
        (--privileged=true是防止-v挂载容器卷的时候写权限不够而添加的)
8、docker ps
9、http://localhost:9080
10、在/opt/tomcat9/test下扔一个项目 测试下myt9是否可以跑
11、docker restart myt9 重启容器
相关推荐
微功夫信息技术6 小时前
分层多智能体强化学习驱动的非急救转运公平 - 效率统一调度系统研究与实践
人工智能·学习·算法·动态规划
dadaobusi7 小时前
学习:开源项目Cheshire
学习
撩得Android一次心动8 小时前
Jetpack Compose 知识点整理1【个人用】
android·学习·kotlin·android jetpack·compose
全栈攻略8 小时前
Docker 中 ROS2 工作流 Topic 验证与常用命令指南
运维·docker·容器
xian_wwq10 小时前
【学习笔记】OWASP Agentic 应用安全(二)
笔记·学习·安全·owasp
名字还没想好☜11 小时前
Docker 数据卷实战:volume、bind mount、tmpfs 到底怎么选,数据持久化与权限坑
运维·docker·容器·kubernetes
小弥儿11 小时前
GitHub今日热榜 | 2026-09-04:Agent省 token 成今日主线
学习·开源·github
前端精髓11 小时前
NestJS 是什么(对着 Spring Boot 一起学习)
spring boot·后端·学习
唐青枫11 小时前
Docker diff 详解:看清容器里到底改了什么
docker
kyrie_sakura12 小时前
MySQL数据库学习笔记2--系统函数(分组,单行,窗口函数)
数据库·学习·mysql