• docker file实战并将springBoot项目打包成镜像并运行


    docker file

    什么是dockerfile

    Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

    docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。

    例:

    ​ docker build -f /path/to/a/Dockerfile

    Dockerfile的基本结构

    Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。

    Dockerfile文件说明

    格式

    #是注释

    指令建议要大写,内容小写。这样更能区分

    执行顺序

    docker是按照Dockerfile指令顺序依次执行的,也就是说从上到下。

    其他

    每一个Dockerfile的第一行都是非注释性的,也就是说第一行不能是注释,必须是FROM指令,来指定基础镜像,后面的指令都以基础镜像为运行环境。如果构建过程中本地没有指定镜像文件,就会去远端仓库拉。

    说明:

    从应用软件的角度来看,dockerFile,docker镜像,docker容器分别代表软件的三个不同的阶段

    • dockerFile是软件的原材料(代码)
    • docker 镜像就==(.apk 就是所谓的安装包)
    • docker 容器是软件运行的祝你光头(客户下载执行)

    dockerFile是面向开发,docker镜像是交付标准,docker容器涉及部署以及运维三者缺一不可!

    dockerfile实战

    安装

    $ docker pull centos:centos7
    
    • 1

    查看本地镜像

    $ docker images
    
    • 1

    启动

    $ docker run -itd --name centos-test centos:centos7
    
    • 1

    进入容器内部(你会发现(它的结构和我们的服务器的系统是一模一样的我服务器安装的centos7.6的)

    # docker exec -it 容器id /bin/bash
    
    • 1

    进入服务器之后你会发现官方给的centos7里面啥都没有 vim jdk等等都没有,所以我们需要去改造它然后再把它封装成一个镜像方便我们以后去使用

    你去github查看centos的源码就是以dockerfile实现的所以今天我们就要使用dockerfile来进行改造!!!

    改造初始centos脚本

    #继承自哪一个基础的镜像
    FROM centos:centos7
    #作者的信息
    MAINTAINER shenjian<2511761696@qq.com>
    #容器构建时需要运行的命令
    #安装vim
    RUN yum -y install vim*
    #安装netstat指令
    RUN yum -y install net-tools
    #配置环境参数(定义的时候不需要加$,引用的时候加)
    ENV MYPATH /usr/local
    #切换目录
    WORKDIR $MYPATH
    #安装JDK(将宿主机的文件添加到容器中)
    ADD jdk-8u333-linux-x64.tar.gz $MYPATH
    #配置jdk的环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_333
    ENV CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
    ENV PATH=$PATH:${JAVA_HOME}/bin
    #暴露短口
    EXPOSE 80
    #启动centos
    CMD /bin/bash
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    开始操作 吼吼吼!!

    在服务器里面奥

    cd /home
    
    • 1

    新建一个Dockerfile将我们写好的脚本放进去

    vi Dockerfile
    
    • 1

    执行构建脚本(mycentos:1.0 名字随意取 .必须要有)

    do
    
    • 1

    查看镜像

     docker images
    
    • 1

    在这里插入图片描述

    我们配置好的镜像就欧了将之前从官方拉取下来的镜像删除掉

    停止服务

    docker stop id
    
    • 1

    删除服务

    docker rm id
    
    • 1

    删除镜像

    docker rmi id
    
    • 1

    启动我们自己封装好的镜像

     docker run -itd --name centos-test mycentos:1.0 
    
    • 1

    启动成功后进去看看

     docker exec -it id /bin/bash
     ls
     bin  etc  games  include  jdk1.8.0_333  lib  lib64  libexec  sbin  share  src    
    
    • 1
    • 2
    • 3

    将spring Boot项目打包成镜像运行

    进入项目

    在这里插入图片描述

    在这里插入图片描述

    构建镜像脚本

    Dockerfile

    #继承一个基础镜像
    FROM java:8
    #设置作者
    MAINTAINER shenjian<2511761696@qq.com>
    #将本地的demo3-0.0.1-SNAPSHOT.jar添加到镜像里去 
    ADD demo3-0.0.1-SNAPSHOT.jar demo3.jar
    #暴露端口
    EXPOSE 8081
    #启动项目
    ENTRYPOINT ["java","-jar","demo3.jar"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    先clean清空

    在这里插入图片描述

    在这里插入图片描述

    把打好的jar包移动到和Dockerfile同级目录

    在这里插入图片描述

    现在使用idea连接ssh工具

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    然后开始操作!!!

    进去目录(记得退出之前创建的镜像centos,然后记得把8081端口杀掉不然启动会冲突)

    cd /usr/local
    
    • 1

    构建镜像

     docker build -f Dockerfile -t demo3:1.0 .
    
    • 1

    启动构建的镜像

     docker run --name demo3 -p 8081:8081 -d demo3:1.0
    
    • 1

    访问端口 成功!!!

    在这里插入图片描述

  • 相关阅读:
    Spring-AOP配置(注解及多方整合案例)
    07-服务管理-02-yum常用命令和yum源
    .linux常用命令
    如何在快应用中实现滑动操作组件
    【Matplotlib绘制图像大全】(十二):嵌套饼图
    为什么我抓不到baidu的数据包
    如何在AIX操作系统上修改Java环境变量
    2022年最新前端面试题,持续更新
    【DOM】-- 事件机制
    Python3,爬虫有多简单,一个库,一行代码,就OK, 你确定不来试试?
  • 原文地址:https://blog.csdn.net/weixin_50098749/article/details/125615097