博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【第三十七章】 springboot+docker(手动部署)
阅读量:5887 次
发布时间:2019-06-19

本文共 2699 字,大约阅读时间需要 8 分钟。

一、下载centos镜像

  • docker pull hub.c.163.com/library/centos:latest
  • docker tag containId centos:7
  • docker run -i -t -v /Users/enniu1/Desktop/docker-data/software:/mnt/software centos:7
    • -i:以"交互模式"运行容器
    • -t:表示容器启动后会进入其命令行
    • -v:数据卷,这里将宿主机的/Users/enniu1/Desktop/docker-data/software目录(宿主机存放软件目录)挂载到容器的/mnt/software目录(容器存放软件目录)
      • 这里是为了让容器直接共享宿主机的/Users/enniu1/Desktop/docker-data/software目录下的软件

二、宿主机下载jdk之后移动到/Users/enniu1/Desktop/docker-data/software

三、容器内解压jdk

  • cd /opt
  • tar -zxf /mnt/software/jdk-8u102-linux-x64.tar.gz -C .
    • 将/mnt/software/jdk-8u102-linux-x64.tar.gz(直接共享的宿主机的挂载目录)解压到当前目录

四、设置环境变量

  • vi ~/.bashrc,添加如下两句
    • export JAVA_HOME=/opt/jdk
    • export PATH=$PATH:$JAVA_HOME/bin
  • source ~/.bashrc
    • 使文件生效
  • java -version进行测试

五、创建自己的镜像:zjg/jdk8:v1.0(第一种创建镜像的方式)

  • exit退出容器
  • docker commit 86e6187ea166 -m"install jdk8 to centos7" zjg/jdk8:v1.0
    • 86e6187ea166:原本的centos的容器id
    • zjg/jdk8:v1.0:镜像名与tag

六、编写代码并使用maven install为jar包,拷贝到与Dockerfile相同的包下

建立一个简单的springboot项目即可。

二者均在/Users/enniu1/Desktop/docker-data/file目录下

七、编写Dockfile文件

#first java applicationFROM zjg/jdk8:v1.0ADD myservice1-docker-1.0-SNAPSHOT.jar /opt/jar/ENV JAVA_HOME /opt/jdkENV PATH $PATH:$JAVA_HOME/binCMD ["java","-jar","/opt/jar/myservice1-docker-1.0-SNAPSHOT.jar"]

说明:

  • #注释
  • FROM zjg/jdk8:v1.0
    • 基于哪个镜像进行创建
  • ADD myservice1-docker-1.0-SNAPSHOT.jar /opt/jar/
    • 将宿主机的myservice1-docker-1.0-SNAPSHOT.jar拷贝到容器的/opt/jar/目录下
      • 注意:这里的myservice1-docker-1.0-SNAPSHOT.jar最好与Dockerfile在同一个文件夹下,否则可能有问题(使用绝对路径和相对Dockerfile的路径都有问题)
      • 注意:/opt/jar/必须带有后边的"/"(目录),如果是/opt/jar这样的话,容器会创建一个jar文件而非目录
  • ENV JAVA_HOME /opt/jdk
  • ENV PATH $PATH:$JAVA_HOME/bin
  • CMD ["java","-jar","/opt/jar/myservice1-docker-1.0-SNAPSHOT.jar"]
    • 容器启动之后,执行"java -jar /opt/jar/myservice1-docker-1.0-SNAPSHOT.jar"

八、创建服务镜像(第二种创建镜像的方式)

  • docker build -t="zjg/myservice1docker:v1.1" /Users/enniu1/Desktop/docker-data/file
    • -t:指定镜像名与tag
    • /Users/enniu1/Desktop/docker-data/file:dockerfile所在的目录

build日志如下:

Sending build context to Docker daemon  13.8 MBStep 1 : FROM zjg/jdk8:v1.0 ---> e7b4cf41e531Step 2 : ADD myservice1-docker-1.0-SNAPSHOT.jar /opt/jar/ ---> ea8401c3ee2eRemoving intermediate container da2e0b518a1fStep 3 : ENV JAVA_HOME /opt/jdk ---> Running in db5d6bed3872 ---> 2c123cd7d20fRemoving intermediate container db5d6bed3872Step 4 : ENV PATH $PATH:$JAVA_HOME/bin ---> Running in 66bbcdf76dfb ---> 38ce4cac8d38Removing intermediate container 66bbcdf76dfbStep 5 : CMD java -jar /opt/jar/myservice1-docker-1.0-SNAPSHOT.jar ---> Running in 9359f360c777 ---> 1bbfc1635a71Removing intermediate container 9359f360c777Successfully built 1bbfc1635a71

每一个step都会创建一层镜像,以上就会创建五层镜像,在删除镜像的时候就会看出,会删除五层镜像。

  • docker images

九、启动测试

  • docker run -d -p 8014:8080 1bbfc1635a71
  • 浏览器访问:localhost:8014/docker/hello(自己springboot项目中的一个controller路径)

转载地址:http://fcgix.baihongyu.com/

你可能感兴趣的文章
项目中的*签到*小功能!
查看>>
iOS 获取cell.accessoryView自定义视图以及点击事件
查看>>
java 考试试题
查看>>
[caffe(一)]使用caffe训练mnist数据集
查看>>
闭包,装饰器
查看>>
vs2013编译错误解决: _declspec(dllimport) 动态链接库
查看>>
这是一篇被河蟹了的博客
查看>>
一个两年Java的面试总结
查看>>
转:React Native之旅01-创建项目
查看>>
软件工程项目组Z.XML会议记录 2013/11/27
查看>>
科学计算库学习报告
查看>>
软件测试 -- 软件测试的风险主要体现在哪里
查看>>
修改App.config中的appSettings
查看>>
JQuery选择器总结
查看>>
Ubuntu中无法update的解决办法
查看>>
仿射变换
查看>>
decltype类型指示符
查看>>
虹软ArcFace人脸识别 与 Dlib 人脸识别对比
查看>>
laravel 验证码使用示例
查看>>
IE开发人员工具无法使用
查看>>