一. 制作一个自定义的tomcat的Dockerfile
- 创建文件: index.jsp, 内容为:
hello docker!
- 创建与index.jsp文件的同级目录文件: Dockerfile(不能更改名称), 内容为:
FROM tomcat
RUN rm -rf webapps/ROOT/*
COPY index.jsp webapps/ROOT/index.jsp
from
: 指定基础镜像为Tomcat, 版本为最新版
run
在基础镜像上加一层镜像, 执行删除ROOT文件夹下的所有文件
copy
复制上下文路径
的index.jsp到ROOT目录下
注意:
run和copy都使用了相对路径, 因为Tomcat镜像默认的工作目录为: /usr/local/tomcat
- 构建镜像
docker build -t hello-docker .
docker build
构建镜像命令
-t(tag)
指定镜像名称和版本号
.
指定镜像包上下文
注意:
构建镜像是docker引擎做的事情, 客户端需要打包.
所在的文件夹到docker-server, 所以, 如果index.jsp文件在Dockerfile目录之外(也可以是下级目录), docker-server就找不到该文件, 就无法进行一些列的操作
- 实例化镜像, 运行容器
docker run -d --rm -p 8080:8080 <镜像ID>
-d
后台运行
--rm
容器停止后, 自动删除容器
-p
端口映射
- 访问Tomcat
<宿主机地址>:8080
hello docker!
二. 制作一个自定义的springboot项目的dockerfile
- 上传项目jar包: springboot-demo-1.0.0-SNAPSHOT.jar 到服务器指定路径
- 在该目录下创建Dockerfile, 内容为:
FROM java:8
COPY springboot-demo-1.0.0-SNAPSHOT.jar app.jar
EXPOSE 8999
CMD java -jar app.jar
expose
暴露端口, 可以暴露多个端口
cmd
当容器启动时, 执行的命令. 当Dockerfile中多条cmd语句, 默认执行最后一条.
- 构建镜像
docker build -t springboot-demo .
- 运行容器
docker run -d --name springboot-demo -p 8999:8999 <镜像ID>
- 访问Tomcat
<宿主机地址>:8999/path