将项目制作成Dcoker镜像并运行--DevOps学习第三章

将自己的Springboot项目制作成docker镜像

文章目录

      • 将自己的Springboot项目制作成docker镜像
  • 一、制作过程
      • 1.把你的项目打包成jar包,上传到虚拟机
      • 2.编写Dockerfile,并上传到虚拟机,跟刚刚上传的项目在同一目录下
      • 3.构建镜像
      • 4.启动容器并测试端口
  • 二、注意事项和报错处理
      • 1.Dockerfile名字就是Dockerfile不能修改而且没有后缀名,这是约定不能更改
      • 2.Dockerfile里面的命令全部要大写
      • 3.各种意外情况

环境: CentOS7
jdk1.8(openjdk1.8也一样的)
maven3.6.3

一、制作过程

1.把你的项目打包成jar包,上传到虚拟机

将项目制作成Dcoker镜像并运行--DevOps学习第三章_第1张图片
微服务同理

2.编写Dockerfile,并上传到虚拟机,跟刚刚上传的项目在同一目录下

FROM java:8
MAINTAINER wjh
VOLUME /tmp
ADD wujiahao-0.0.1-SNAPSHOT.jar test.jar
RUN bash -c 'touch /test.jar'
ENTRYPOINT ["java","-jar","/test.jar"]
EXPOSE 8060

FROM 选择基础镜像,从这里开始构建所有东西
MAINTAINER 该镜像的作者,可以写名字邮箱啥的
ADD 从主文件(你上传的jar包)添加到你的镜像中,会自动解压压缩包
RUN和ENTRYPOINT  运行jar,可追加参数
EXPOSE &emsp镜像暴露端口与你该项目的端口号一致

3.构建镜像

docker build -t test:2.0 .

进入存放jar和Dcokerfile的目录执行该命令。注意后面有个点的哈,表示当前目录下。该命令执行执行失败的话,好好检查你的Dockerfile有没有写错,标点符号是不是英文的。
将项目制作成Dcoker镜像并运行--DevOps学习第三章_第2张图片

4.启动容器并测试端口

-d 是让容器后台运行
-it 针对纯操作系统镜像(没有守护进程的)没有-it容器启动后会自动退出
-p 映射端口,前面是宿主机,后面是容器。外部访问是访问宿主机的端口,比如本地起个容器端口映射为8888:9999,想要访问该容器的接口的话应该输入127.0.0.1:8888/xxxx
请添加图片描述
将项目制作成Dcoker镜像并运行--DevOps学习第三章_第3张图片
成功

二、注意事项和报错处理

1.Dockerfile名字就是Dockerfile不能修改而且没有后缀名,这是约定不能更改

2.Dockerfile里面的命令全部要大写

3.各种意外情况

逗号和-号不要搞错不然build的时候会失败
将项目制作成Dcoker镜像并运行--DevOps学习第三章_第4张图片
逗号错了会出现这种情况
将项目制作成Dcoker镜像并运行--DevOps学习第三章_第5张图片

还有就是docker run之后docker ps没显示的情况。执行docker ps -a你能看到你刚刚启动的容器处于Exited状态,说明是启动之后又停止了,这种情况很多种原因。
请添加图片描述
先执行docker logs 这个容器的ID,查看报错原因。我是Error: Could not find or load main class jar,检查Dcokerfile之后原来是我的ENTRYPOINT命令的 -jar 是中文的 -,无语。其他原因自行百度

你可能感兴趣的:(DevOps学习,docker,springboot,devops,学习,运维)