SpringBoot整合Dockerfile

1、Dockerfile

1.1 Dockerfile是什么?

官网中是这么说的:“Docker can build images automatically by reading the instructions from a Dockerfile. A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image。”

简而言之,Dockerfile 是一个包含创建生成新镜像时用到的各种指令的文本文件。使用Dockerfile 文件来定义镜像,然后运行镜像,启动容器。

1.2 Dockerfile文件的基本结构

一个dockerfile文件包含以下部分:

·基础镜像,使用FROM关键字指定基础镜像信息,FROM是dockerfile文件的第一条指令。

·维护者信息,使用MAINTAINER关键字指定,通常可以使用dockerfile文件创建者的名字或者邮件作为维护者的信息。

·镜像操作指令,每执行一条镜像操作指令,都会在镜像中添加新的一层。

·容器启动指令,用户使用CMD ENTRYPOINT命令指定

1.3 创建第一个Dockerfile

连接虚拟机,进入var文件夹,mkdir df,进入df文件夹,创建文件touch hello。

编辑hello文件vim hello,进入配置:

FROM redis
MAINTAINER lll
docker build -t 镜像名称:版本(tag) -f 文件名称 .

1.4 Dockerfile文件常用指令

FROM 指定基础镜像

用于创建一个新的镜像,有效的 Dockerfile 必须以 FROM 指令开头,后+有效的镜像名称

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

MAINTAINER指定维护者信息

用于指定维护者的信息。

格式:

        MAINTAINER 名字

ADD 复制文件

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

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

格式:

        ADD src … dest

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

示例:

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

ENTRYPOINT 进入点

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

格式:

        ENTRYPOINT [“executable”, “param1”, “param2”] (可执行文件, 优先)

        ENTRYPOINT command param1 param2 (shell内部命令)

示例:

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

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

EXPOSE 端口暴露

格式:

        EXPOSE <port> [<port>…]

VOLUME 指定挂载点

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

格式

        VOLUME 文件路径

CMD

指定这个容器启动的时候要运行的命令,只有最后一个会生效,可以被代替。

2、Linux服务器配置远程访问docker

2.1 打开文件,vim /lib/systemd/system/docker.service

2.2 修改端口,后面加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.3 重启docker

2.4 测试配置端口2375是否有效

        查询端口状态:

    

curl测试服务器是否启动

2.5 开放防火墙2375端口

3、idea配置docker连接

检查docker插件,+TCP socket

查看service中docker状态

4、SpringBoot整合Dockerfile

4.1 新建maven项目,配置pom.xml

创建目录,App.java

添加示例代码+@注解,启动程序

使用lifecycle打包项目成jar包,注意jdk版本问题,打包完成进行测试(cmd指令打开项目,打开网页测试)。

4.2 Linux安装jdk

在路径/usr/local/software/jdk 下上传jdk压缩包

解压:

tar -zxvf   jdk-8u341-linux-x64.tar.gz

配置环境:

编辑/etc/profile文件

vim /etc/profile

退出编辑保存,:wq

source /etc/profile 记得最后这句命令

查看jdk版本

上传jar包,开放端口9090

运行jar包

 java -jar hello-docker-1.0-SNAPSHOT.jar

补充知识点:

4.3 合并整合Dockerfile

在项目下右键新建文件File➡命名Dockerfile

输入Dockerfile相关命令:

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

点击左上角绿色双小箭头,New Run Configuration

配置完成,Run运行。

查看运行状态:

Dockerfile与docker关系图:

————————————————————————————————————

感谢阅读,码字不易,多谢点赞!如有不当之处,欢迎反馈指出,感谢!

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要运行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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值