一.创建自定义镜像
1. 用命令更新镜像
1、根据基础镜像,创建容器docker run --name mytomcat -p 80:8080 -d tomcat
2、修改容器内容
docker exec -it mytomcat /bin/bash
cd webapps/ROOT
rm -f index.jsp
echo "hello world" > index. html
exit
3、提交为新镜像
docker commit -m="描述消息" -a="作者" 容器ID或容器名 镜像:TAG
#例:
#docker commit -m="修改了首页" -a="测试" mytomcat zhang/tomcat:v1.0
4、使用新镜像运行容器
docker run --name tom -p 8080:8080 -d zhang/tomcat:v1.0
2. 用Dockerfile构建镜像
创建一个Dockerfile文件 `vi Dockerfile`#注意Dockerfile指令须大写
FROM tomcat
MAINTAINER zhang
RUN rm -f /usr/local/tomcat/webapps/ROOT/index.jsp
RUN echo "<h1>hello world2</h1>" > /usr/local/tomcat/webapps/ROOT/index.html
构建新镜像
docker build -f Dockerfile -t zhang/tomcat:v2.0 .
#-f Dockerfile路径,默认是当前目录
#-t 指定新镜像的名字以及TAG
二.使用Dockerfile文件部署Spring应用
a、使用tomcat镜像
1、拉取tomcat文件 : docker pull 镜像NAME:镜像TAGdocker pull tomcat:8.5
2、以挂载文件形式创建容器
docker run -d -p 8098:8080 -v /data/my_tomcat_1/webapps:/usr/local/tomcat/webapps --name my_tomcat_1 tomcat:8.5
参数解释
参数 | 含义 |
---|---|
-d | 后台运行 |
-p 8098 : 8080 | 把容器运行的 8080 端口映射到 host 的 8098 端口 |
-v /data/my_tomcat_1/webapps : /usr/local/tomcat/webapps | 用来将容器目录挂载在host主机上,前面的路径是host主机目录 |
–name my_tomcat_1 | 给容器起个名字:my_tomcat_1 |
tomcat:8.5 | tomcat是下载的镜像的NAME。8.5是镜像TAG |
3、把项目打成war包,并上传到 /data/my_tomcat_1/webapps
目录
4、重新运行容器
b、自定义镜像
1、把项目打包成可执行jar包,并上传到Linux服务器
2、在jar包路径下创建Dockerfile文件vi Dockerfile
# 指定基础镜像,本地没有会从dockerHub pull下来
FROM java:8
#可执行jar复制到基础镜像的根目录下
ADD test.jar /test.jar
#镜像要暴露旳端口,如要使用端口,在执行docker run命令时使用-p生效
EXPOSE 8080
#在镜像运行为容器后执行旳命令
ENTRYPOINT ["java", "-jar", "/test.jar"]
3、使用 docker build
命令构建镜像,基本语法
docker build -f Dockerfile -t zhang/myapp:v1 .
#-f 指定Dockerfile文件的路径
#-t 指定镜像名字和TAG
#. 指当前目录,这里实际上需要一个上下文路径
4、运行自己的spring boot镜像
docker run --name myapp -p 8098:8080 -d zhang/myapp:v1