springboot整合Dockerfile

springboot整合Dockerfile

一、 Dockerfile

  1. Dockerfile是什么?

    Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

  2. Dockerfile的结构
    在这里插入图片描述

  3. Dockerfile文件常用指令

    (1)FROM指定基础镜像

    ​ FROM指令初始化一个新的构建阶段,并为后续指令设置基础镜像。因此,有效的 Dockerfile 必须以 FROM 指令开头。该镜像可以是任何有效的镜像–很容易通过从Public Repositories(镜像仓库) 拉取一个镜像。

    ​ FROM类似于Java中extends关键字继承于基础镜像,即FROM之后的内容都依赖于此基础镜像。

    格式:
      FROM 镜像名称
      FROM 镜像名称:<tag>
      FROM 镜像名称@<digest>
    注:
      tag或digest是可选的,如果不使用这两个值时,会使用latest版本的基础镜像

    案例:

    FROM mysql:5.6
    
    FROM mysql
    

    (2)MAINTAINER指定维护者信息

    ​ 用于指定维护者的信息,用于为Dockerfile署名。

    格式:
      MAINTAINER 名字

    案例:

    MAINTAINER xzx
    

    (3)ADD复制文件

    ​ 将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget。

    格式:

    ADD src … dest
      ADD [“src”,… “dest”] 用于支持包含空格的路径

    从src目录复制文件到容器的dest。

    案例:

    ADD target/springboot-dockerfile-1.0-SNAPSHOT.jar /app.jar
    

    将本机target/springboot-dockerfile-1.0-SNAPSHOT.jar文件拷贝到容器内**/app.jar**

    (4)ENTRYPOINT入口点

    ENTRYPOINT 允许您配置将作为可执行文件运行的容器。用ENTRYPOINT的exec形式来设置相当稳定的默认命令和参数,然后使用CMD的任何一种形式来设置更可能更改的其他默认值。

    ​ 注: 一般在制作一些执行就关闭的容器中会使用。

    格式:

    ENTRYPOINT [“executable”, “param1”, “param2”] (可执行文件, 优先)
      ENTRYPOINT command param1 param2 (shell内部命令)

    ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。

    案例:

    ENTRYPOINT ["java","-jar","/app.jar"]
    

    (5)EXPOSE指定于暴露的端口

    格式:

    EXPOSE <port> [<port>…]

    案例:

    EXPOSE 9090
    

    (6)VOLUME指定挂载点

    ​ 使用指令使容器中的一个目录具有持久化存储的功能,该目录可被容器本身使用,也可以共享给其它容器。

    格式:

    VOLUME 文件路径

    案例:

    VOLUME /tmp
    

    (7)CMD

    ​ “CMD”的主要目的是为执行容器提供默认值。 这些默认值可以包含可执行文件,也可以省略可执行文件,在这种情况下,你还必须指定“ENTRYPOINT”指令。

二、 linux中配置远程访问docker

  1. 打开文件docker.service

    [root@woniu abc]# vim /lib/systemd/system/docker.service
    
  2. 修改文件,在13行末尾添加(:set number显示行号)

    -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    

在这里插入图片描述

  1. 重启docker

    [root@woniu abc]# systemctl daemon-reload
    [root@woniu abc]# systemctl restart docker.service
    
  2. 测试2375端口是否有效

    [root@woniu abc]# netstat -nplt|grep 2375
    
  3. curl测试服务是否启动(ip写你自己虚拟机ip)

    [root@woniu abc]# curl http://192.168.102.100:2375/info
    
  4. 开放2375端口(直接把防火墙关了也行,二选一)

    [root@woniu abc]# firewall-cmd --add-port=2375/tcp --permanent
    success
    [root@woniu abc]# firewall-cmd --reload
    success
    [root@woniu abc]# firewall-cmd --list-ports
    3306/tcp 2375/tcp
    
    #关闭防火墙
    [root@woniu abc]# service firewalld stop
    [root@woniu abc]# systemctl disable firewalld
    

三、springboot整合Dockerfile

  1. idea安装配置docker插件
    在这里插入图片描述

  2. 新建一个基本的springboot项目,目录结构和基本配置如下

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

  3. 使用maven里面的package生成jar包

    在这里插入图片描述

  4. 在项目下创建文件Dockerfile,开始编写该文件(这个Dockerfile的作用是创建一个基于anapsix/alpine-java镜像的Docker容器,该容器会运行一个监听在9090端口的Java应用程序。该应用程序的可执行文件是hello-docker-1.0-SNAPSHOT.jar,它会被复制到容器内的/app.jar路径下,并在容器启动时通过java -jar /app.jar命令来运行)

    FROM anapsix/alpine-java 
    MAINTAINER xzx 
    EXPOSE 9090 
    ADD target/hello-docker-1.0-SNAPSHOT.jar /app.jar 
    ENTRYPOINT ["java","-jar","/app.jar"]
    

    在这里插入图片描述

  5. 编辑生成的镜像名称和绑定的ip以及端口号

    在这里插入图片描述

  6. 点击Run开始运行,回到linux中就能查到docker容器了

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

  7. 同时也可以使用(http://192.168.102.100:9090/api/hello)访问了

    在这里插入图片描述

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要运行Spring Boot项目的Dockerfile,可以按照以下步骤操作: 1. 首先,确保已经重启了Docker服务,可以使用以下命令重启Docker服务: ``` systemctl restart docker ``` 2. 在Spring Boot项目的根目录下创建一个名为`Dockerfile`的文件,该文件用于定义Docker镜像的构建和运行配置。 3. 打开`Dockerfile`文件,将以下内容复制到文件: ``` FROM openjdk:8-jdk-alpine COPY target/myproject.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 这个Dockerfile使用了基于Alpine Linux的OpenJDK 8镜像,并将构建好的Java项目的jar文件复制到Docker镜像,然后通过`ENTRYPOINT`指令运行该jar文件。 4. 打开终端,进入到Spring Boot项目的根目录,执行以下命令来构建Docker镜像: ``` docker build -t myproject . ``` 其,`myproject`是你给Docker镜像起的名字,可以根据需要自行修改。 5. 构建完成后,使用以下命令来运行Docker镜像: ``` docker run -p 8080:8080 myproject ``` 其,`8080:8080`表示将Docker容器的8080端口映射到宿主机的8080端口,可以根据需要修改端口号。 这样,你就成功地使用Dockerfile来运行Spring Boot项目了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [docker从零开始-springboot整合Dockerfile](https://blog.csdn.net/qq_36115196/article/details/128391462)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [使用Dockerfile部署springboot项目 (入门级教程 简单易懂)](https://blog.csdn.net/qq_41890624/article/details/126873259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值