Docker从入门到精通——实战Dockerfile构建Tomcat镜像

简介: Docker从入门到精通——实战Dockerfile构建Tomcat镜像

实战Dockerfile构建Tomcat镜像

前言

再上一篇博客总结了CMD与ENTRYPOINT区别感兴趣可以进行访问。CMD与ENTRYPOINT的区别

准备镜像文件

1.首先我们需要准备两个文件分别是tomcat和jdk。tomcat和jdk可以在官网进行下载。
Tomcat官网
JDK下载官网
2.将下载好的文件或者是压缩包上传到虚拟机中。我这儿上传的是我的XShell中。

如何将文件上传到xShell,在Xshell新建会话中选择SFTP协议,这个协议主要是用来传输文件的。


进入虚拟机之后,直接将下载好的文件拖到屏幕中就完成文件上传了。

如图:

编写Dockerfile

1.在目录下创建一个名为Dockerfile的文件,命名为Docekrfile的好处是,是官方的命名不用在构建的时候添加其他命令。

关于Dockerfile的命令可以访问Docker的文档进行查看和学习Docker docs

2.编辑Dockerfile 难点是配置环境变量

FROM centos:centos7
MAINTAINER wangwei<2532076303qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u231-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.62.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local/
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_231
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.62
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.62
ENV PATH $PATH:$JAVA_HOME/bin:$CTALINA_HOME/lib/:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.62/bin/startup.sh && tail -F /url/local/usr/local/apache-tomcat-9.0.62/bin/logs/catalina.out
  1. 构建镜像
# 因为dockerfile命名使用默认命名 因此不用使用-f 指定文件
docker build -t diytomcat .
  1. run镜像,同时进行数据卷挂载
docker run -d -p 9090:8080 --name wagnweitomcat -v /home/wangwei/test:/usr/local/apache-tomcat-9.0.62/webapps/test -v /home/wangwei/tomcatlogs:/usr/local/apache-tomcat-9.0.62/logs diytomcat

查看时候成功运行


5. 进行测试

curl localhost:9090


最后在进行外网访问ip+端口号

目录
相关文章
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
620 99
|
11月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
1009 6
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
444 8
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
735 76
|
Docker 容器
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
|
应用服务中间件 Linux Shell
Docker进阶 dockerfile指令构建docker镜像
Docker进阶 Dockerfile指令,编译dockerfile文件构建镜像,dockerfile常用指令,实操训练:Dockerfile构建Nginx镜像: FROM #指定基础镜像,一切从这里开始构建 MAINTAINER #镜像是谁写的,姓名+邮箱 RUN #镜像构建的时候需要运行的命令 ADD #步骤:tomcat镜像,这个tomcat压缩包!添加内容 WORKDIR #镜像的工作目录 VOLUME #挂载的目录 EXPOST #暴露端口配置
Docker进阶 dockerfile指令构建docker镜像
|
Linux Docker 容器
Docker Dockerfile 语法与指令
Docker Dockerfile 语法与指令
434 0
|
存储 Shell 应用服务中间件
学习Docker就应该掌握的dockerfile语法与指令
在日常的工作中,常常需要制作自己的项目的镜像,一般通过以下两种方式制作镜像:Docker commit、Dockerfile。 ## Docker commit Docker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。 ``` docker commit 容器名 新镜像名:tag ``` 使用这种方式的缺点是:1.对外不
|
存储 架构师 Shell
学习Docker就应该掌握的dockerfile语法与指令
在日常的工作中,常常需要制作自己的项目的镜像,一般通过以下两种方式制作镜像:Docker commit、Dockerfile。 ## Docker commit Docker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。 ``` docker commit 容器名 新镜像名:tag ``` 使用这种方式的缺点是:1.对外不
|
Linux Docker 容器
Docker Dockerfile 语法与指令
Docker Dockerfile 语法与指令
419 0