文章目录
- 前言
- 一、准备
- 二、操作步骤
- 三、Dockerfile参数说明
- 总结
前言
docker 官方镜像源已经有 tomcat 的镜像,运行命令 docker pull tomcat 就可以拉下来,但是如果我们想将自己的 tomcat 打成镜像,例如,我们业务需要修改了 tomcat 的源码,这时候我们想要将他打包成镜像,如何操作 ?
一、准备
前言说是我们自己修改过源码的 tomcat,那我们必须要先准备好一个已经修改了源码,并打包成 tar.gz 的压缩包 apache-tomcat-9.0.58.tar.gz
二、操作步骤
- 编写文件 Dockerfile
下面有 Dockerfile 文件中参数的简要说明
# 依赖镜像
FROM centos
FROM openjdk:8u312-jdk-oracle
MAINTAINER liqiye
# 工作目录
WORKDIR /usr/local/apache-tomcat-9.0.58
# 添加压缩包,自动解压
ADD apache-tomcat-9.0.58.tar.gz /usr/local
# 映射端口
EXPOSE 8080
# 启动
ENTRYPOINT ["/usr/local/apache-tomcat-9.0.58/bin/catalina.sh","run"]
- 把 winhong-winas-9.0.58.tar.gz、Dockerfile 放在linux同级目录
- 运行命令打包镜像
后面的点表示根据当前目录下的 Dockerfile 文件构建
docker build -t liqiye/tomcat:v1 .
- 查看本地镜像
docker images
- 镜像运行容器
注意镜像名必须放在最后面
docker run -itd --name winas -p 8080:8080 -v /usr/local/docker/winas/webapps:/usr/local/apache-tomcat-9.0.58/webapps liqiye/tomcat:v1
- 登录自己的 docker 账号
docker login
- 上传到docker仓库
docker push liqiye/tomcat:v1
三、Dockerfile参数说明
- FROM
指定基础镜像,必须是第一条指令
如果不以任何镜像为基础,写法为:FROM scratch - MAINTAINER
指定作者 - WORKDIR
工作目录
这里指定的路径,是在使用 docker exec 进入容器后默认的路径 - ADD
作用:添加内容到镜像
格式:ADD <src> <dest>
说明:将复制指定的 <src> 路径下内容到镜像中的 <dest> 路径下
<src>:可以是一个文件、目录、 URL、压缩文件。如果是压缩文件,会自动解压到 <dest> 路径下,而如果是 URL,对应的也是一个压缩文件,就不会自动解压
<dest>:可以是镜像内绝对路径,或者相对于工作目录 WORKDIR 的相对路径 - EXPOSE
暴漏容器运行时的监听端口给外部
这个只是起暴露作用,并没有实现主机与容器的端口映射,要实现端口映射需要在启动容器的时候带上参数 -p - ENTRYPOINT
启动时的默认命令
也就是从这里指定启动的程序
Dockerfile 文件的参数有很多,这里只是对本片文章用到的参数,做简单的介绍
总结
欢迎指出我的错误!