zoukankan      html  css  js  c++  java
  • 第三十七章 springboot+docker(手动部署)

    一、下载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文件

     1 #first java application
     2 
     3 FROM zjg/jdk8:v1.0
     4 
     5 ADD myservice1-docker-1.0-SNAPSHOT.jar /opt/jar/
     6 
     7 ENV JAVA_HOME /opt/jdk
     8 ENV PATH $PATH:$JAVA_HOME/bin
     9 
    10 CMD ["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日志如下:

     1 Sending build context to Docker daemon  13.8 MB
     2 Step 1 : FROM zjg/jdk8:v1.0
     3  ---> e7b4cf41e531
     4 Step 2 : ADD myservice1-docker-1.0-SNAPSHOT.jar /opt/jar/
     5  ---> ea8401c3ee2e
     6 Removing intermediate container da2e0b518a1f
     7 Step 3 : ENV JAVA_HOME /opt/jdk
     8  ---> Running in db5d6bed3872
     9  ---> 2c123cd7d20f
    10 Removing intermediate container db5d6bed3872
    11 Step 4 : ENV PATH $PATH:$JAVA_HOME/bin
    12  ---> Running in 66bbcdf76dfb
    13  ---> 38ce4cac8d38
    14 Removing intermediate container 66bbcdf76dfb
    15 Step 5 : CMD java -jar /opt/jar/myservice1-docker-1.0-SNAPSHOT.jar
    16  ---> Running in 9359f360c777
    17  ---> 1bbfc1635a71
    18 Removing intermediate container 9359f360c777
    19 Successfully built 1bbfc1635a71

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

    • docker images

    九、启动测试

    • docker run -d -p 8014:8080 1bbfc1635a71
    • 浏览器访问:localhost:8014/docker/hello(自己springboot项目中的一个controller路径)
  • 相关阅读:
    gitlab 本地 定时备份
    centos 7 部署 汉化版 gitlab
    ELK开机启动 service文件内容
    通过 kms 激活 office 2016
    让 kibana 后台启动的方案
    centos7 yum 安装 redis
    域账户登录时提示“你的账户配置不允许使用这台电脑。请试一下其他电脑” 解决方案
    gitlab 接入 openldap、AD
    VS访问不到TFS、VS连接TFS报TF30063
    php--纯静态和伪静态的区别与关系
  • 原文地址:https://www.cnblogs.com/java-zhao/p/5974561.html
Copyright © 2011-2022 走看看