+-
首页 专栏 docker 文章详情
小伍 发布于 5 月 17 日
关注作者
关注作者

0
Docker 使用 Dockerfile 制作 Tomcat 镜像
编写 Dockerfile 文件
vim Dockerfile
# 镜像使用的基础镜像 FROM centos # 指明镜像的作者 MAINTAINER wu<[email protected]> # 添加压缩包,会自动解压,需提前下载放到 Dockerfile 文件所在目录 ADD jdk-8u11-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.22.tar.gz /usr/local/ # 类似ADD指令,将文件拷贝到镜像中,需提前编写放到 Dockerfile 文件所在目录 COPY readme.txt /usr/local/readme.txt # 镜像构建时需要运行的命令 RUN yum -y install vim RUN yum -y install net-tools # 构建时设置环境变量 ENV MYPATH /usr/local # 镜像的工作目录,启动容器后进入的目录 WORKDIR $MYPATH # 设置 JAVA 环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_11 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22 ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin # 指定对外的暴露端口 EXPOSE 8080 # 匿名挂载数据卷 VOLUME ["volume01","volume02"] # 容器启动时需要运行的命令,多个CMD命令只有最后一个会生效 # CMD中的命令会被docker run的命令完全替代 CMD echo $MYPATH CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out
# 构建镜像 # -f 指定使用的Dockerfile文件,-t 指定生成镜像的版本,. 镜像放在当前目录 docker build -t my_tomcat . # 查看所有镜像 docker images # 运行容器,默认会去找最新版,所以需要指定版本 docker run -d -p 8080:8080 --name my_tomcat01 \ -v /home/tomcat/test:/usr/local/apache-tomcat-9.0.22/webapps/test \ -v /home/tomcat/logs:/usr/local/apache-tomcat-9.0.22/logs \ my_tomcat # 进入容器 docker exec -it my_tomcat01 /bin/bash
# 查看镜像构建历史 docker history image_id # 查看容器详情和数据卷挂载信息 docker inspect my_centos01
docker
阅读 29 发布于 5 月 17 日
举报
赞
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
小伍
34 声望
1 粉丝
0 条评论
得票数 最新
提交评论
小伍
34 声望
1 粉丝
宣传栏
目录
▲
编写 Dockerfile 文件
vim Dockerfile
# 镜像使用的基础镜像 FROM centos # 指明镜像的作者 MAINTAINER wu<[email protected]> # 添加压缩包,会自动解压,需提前下载放到 Dockerfile 文件所在目录 ADD jdk-8u11-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.22.tar.gz /usr/local/ # 类似ADD指令,将文件拷贝到镜像中,需提前编写放到 Dockerfile 文件所在目录 COPY readme.txt /usr/local/readme.txt # 镜像构建时需要运行的命令 RUN yum -y install vim RUN yum -y install net-tools # 构建时设置环境变量 ENV MYPATH /usr/local # 镜像的工作目录,启动容器后进入的目录 WORKDIR $MYPATH # 设置 JAVA 环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_11 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22 ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin # 指定对外的暴露端口 EXPOSE 8080 # 匿名挂载数据卷 VOLUME ["volume01","volume02"] # 容器启动时需要运行的命令,多个CMD命令只有最后一个会生效 # CMD中的命令会被docker run的命令完全替代 CMD echo $MYPATH CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out
# 构建镜像 # -f 指定使用的Dockerfile文件,-t 指定生成镜像的版本,. 镜像放在当前目录 docker build -t my_tomcat . # 查看所有镜像 docker images # 运行容器,默认会去找最新版,所以需要指定版本 docker run -d -p 8080:8080 --name my_tomcat01 \ -v /home/tomcat/test:/usr/local/apache-tomcat-9.0.22/webapps/test \ -v /home/tomcat/logs:/usr/local/apache-tomcat-9.0.22/logs \ my_tomcat # 进入容器 docker exec -it my_tomcat01 /bin/bash
# 查看镜像构建历史 docker history image_id # 查看容器详情和数据卷挂载信息 docker inspect my_centos01