自定义Dockerfile构建运行springboot

自定义Dockerfile构建运行springboot

通过dockerfile生成自定义nginx镜像

!!!docker 必须在linux环境下才能进行如果你是window则需要装虚拟机

新建一个文件名字为Dockerfile,无需后缀 文件完整名就是Dockerfile,也可以自定义dockerfile名, build时用-f指定dockerfile名称

编写dockerfile

# 基于哪个镜像
FROM java:8

# 将本地文件夹挂载到当前容器
VOLUME /tmp

# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar app.jar
ADD helloWorld.jar app.jar

# 声明需要暴露的端口
EXPOSE 8888

# 配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","app.jar"]

image-20240123135150114

切换到test2目录执行构建动作。

执行docker build -t helloworld:v3 . -f Dockerfile-spring

以下示例,通过目录下的 Dockerfile-spring 构建一个 helloworld:v3(镜像名称:镜像标签)。

. 代表本次执行的上下文路径

image-20240123135343743

上一节中,有提到指令最后一个 . 是上下文路径,那么什么是上下文路径呢?例如

$ docker build -t nginx:v3 .

上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

**Dockerfile的文件名默认为Dockerfile,**这是Docker官方推荐的命名方式。当我们在构建镜像的时候,Docker会默认在当前目录下查找名为Dockerfile的文件,并根据文件中的内容构建镜像。但是,如果你想给Dockerfile取一个自定义的名字,也是完全可以的。

当我们需要使用自定义的Dockerfile名字时,我们需要在构建镜像的时候通过-f或–file参数指定Dockerfile的路径。下面是一个示例:

docker build -f my-dockerfile .

查看是否成功 docker images

image-20240123135744356

运行镜像

docker run --name helloworldtest -p 8888:8888 helloworld:v3

image-20240123135936045

参数说明:

  • –name helloworldtes:容器名称。
  • -p 8888:8888: 端口进行映射,将本地 8888 端口映射到容器内部的 8888 端口。
  • helloworld:v3: 设置容器在在直接运行。

如果想后台运行可以用

docker run --name helloworldtest -p 8888:8888 -d helloworld:v3

-d helloworld:v3: 设置容器在后台运行。

image-20240123140121917

访问成功

image-20240123135952908

image-20240123140013309

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-08 18:08:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-08 18:08:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-08 18:08:04       82 阅读
  4. Python语言-面向对象

    2024-02-08 18:08:04       91 阅读

热门阅读

  1. Leetcode 198 打家劫舍

    2024-02-08 18:08:04       43 阅读
  2. 百粉福预告!!!

    2024-02-08 18:08:04       54 阅读
  3. vue项目拆分组件思想对比

    2024-02-08 18:08:04       60 阅读
  4. 《电子芯片的夜晚》

    2024-02-08 18:08:04       61 阅读
  5. STM32 微控制器应用领域

    2024-02-08 18:08:04       57 阅读
  6. AtCoder D - Synchronized Players

    2024-02-08 18:08:04       57 阅读
  7. c# DataTable 帮助类

    2024-02-08 18:08:04       52 阅读
  8. [144] 二叉树的前序遍历 js

    2024-02-08 18:08:04       51 阅读
  9. 四:C语言-选择结构

    2024-02-08 18:08:04       61 阅读