dockerfile指令学习

进入容器内部有2种方法。

1  docker run -it  centos bash  退出后容器会挂了。

2  docker run -d  --name  my_nginx --restart=always -p 8989:80 nginx

    docker exec -it  my_nginx bash

--restart=always表示ngix挂了后会自动重启,  -P 随机映射一个端口

dockerfile可以根据基础镜像创建自己的镜像。

FROM 指定基础镜像

FROM 镜像名:tag号, eg::FROM centos

MAINTAINER  指定维护者信息  eg:MAINTAINER zwj

RUN 镜像在构建时想执行的各种linux命令

ADD/COPY  都是将宿主机文件拷贝到容器内部 ,COPY仅仅是拷贝, ADD指令拷贝后还支持自动解压缩 tar 文件和远程 URL

eg:COPY  aa.py  /opt   

        ADD https://example.com/archive.tar.gz /tmp/

WORKDIR  设置当前工作目录, 就是更改进入容器的根目录

VOLUME 将容器内部的数据映射到宿主机。 相当于 docker run -v

 eg:VOLUME /data  时将容器内部的/data文件夹在容器运行时自动挂载到匿名卷。

EXPOSE 容器内暴露一个对外的端口

ENTRYPOINT/CMD  指定容器启动后将要进行的一些操作,

CMD ["参数1","参数2"] 命令只能有一个

eg; CMD ["/bin/bash"]  CMD ["cat","/etc/os-release"]  CMD ["curl" "-s", "http:baidu.com"]

区别:CMD 命令,在执行docker run 命令时传入的指令会覆盖掉dockerfile里面定义的命令

ENTRYPOINT命令  在执行dokcer run命令时传入的参数会当作dockerfile里面ENTRYPOINT命令的参数。

ARG/ENV 都是设置docker环境变量的

ENV 设置的环境变量不管是镜像构建时还是容器运行时该变量都可以用

ARG 设置的环境变量只能在镜像构建时有效, 容器运行时丢失了。

eg:ENV name=“aa”  后面的上下文中通过$name来访问该变量

USER 用于切换用户, eg: USER root

要使用Docker部署Spring Boot项目,你可以创建一个Dockerfile来定义Docker镜像的构建过程。以下是一个示例的Dockerfile:

# 使用基于Java的镜像作为基础镜像
FROM openjdk:11-jdk# 设置工作目录
WORKDIR /app# 复制Spring Boot应用的Jar包到容器中
COPY target/my-spring-boot-app.jar app.jar# 暴露Spring Boot应用的默认端口(如果有自定义端口,请修改为实际使用的端口)
EXPOSE 8080# 启动Spring Boot应用
CMD ["java", "-jar", "app.jar"]

在上面的Dockerfile中,我们选择了基于Java的OpenJDK 11镜像作为基础镜像。然后,设置工作目录为/app,在容器中创建一个目录用于存放应用程序文件。

接下来,我们将Spring Boot应用的可执行Jar包复制到容器中的/app目录下,命名为app.jar。确保将target/my-spring-boot-app.jar替换为你实际的Jar包路径。

然后,通过EXPOSE命令暴露Spring Boot应用的默认端口(通常为8080)。如果你的应用使用了自定义端口,请修改为实际使用的端口。

最后,使用CMD命令指定在容器启动时运行的命令。这里使用java -jar app.jar来启动Spring Boot应用。

保存以上内容为Dockerfile文件,并将其与Spring Boot项目的根目录放在同一级别的位置。

接下来,进入命令行,在项目根目录执行以下命令来构建Docker镜像:

docker build -t my-spring-boot-app .

或者

# 基础镜像
FROM openjdk:8-jdk-alpine# 设置工作目录
WORKDIR /app# 复制 Maven 项目文件
COPY pom.xml .# 下载 Maven 依赖包
RUN ["mvn", "dependency:resolve"]# 复制整个 Maven 项目(除了 target 目录)
COPY src ./src# 构建 Maven 项目
RUN ["mvn", "package"]# 运行命令
CMD ["java", "-jar", "/app/target/<your-application-name>.jar"]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flask 请求勾子实现 request_auth认证

from flask import g,request from comment.utils.tokens_pyjwt import verify_tokensdef jwt_request_auth():从请求(request)中获取token&#xff0c;并且验证token&#xff0c;验证成功之后把用户id保存到全局变量g中g.user_idNone #定义变量#前端代码是是把token携带请求头…

Visual Studio Code之自动补全的设置

步骤&#xff1a;1、打开Visual Studio Code&#xff1b;2、找到c_cpp_properties.json文件&#xff1b;3、将原来文件的内容清空&#xff0c;复制以下内容到此文件中即可&#xff1b; {"configurations": [{"name": "Linux","includePath…

基于Spring、SpringMVC、MyBatis的网上服装销售系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Spring、SpringMVC、MyBatis的网上服…

Unity对接后台和加载图片

1、前言 在unity中与后台对接&#xff0c;用await在web端暂时还不支持&#xff0c;所以&#xff0c;协程成为比较好的通用方式&#xff0c;以下适用除post访问外的所有对接 2、对接后台 2.1、安装插件 首先我们需要用到Newtonsoft.dll&#xff0c;如果没有这个.dll的请跟着我…

C++-火车编组

Description 货运火车要在编组站根据挂常车厢到达目的地重新分组。 如果一列火车有4节车厢&#xff0c;经过编组后&#xff0c;车厢的编组顺序为3,2,4,1,你知道编组站是怎么编组的吗? 小明到编组站参观后发现编组站的铁路有很多岔道&#xff0c;火车在岔道上来来回回地开动…

Linux随记(七)

一、欧拉bclinux 21.10安装zabbix-5.0.37.tar.gz &#xff08;zbx-客户端&#xff09; #系统环境&#xff1a; BigCloud Enterprise Linux For Euler 21.10 LTS #软件信息&#xff1a; zabbix-5.0.37.tar.gz &#xff0c; pcre-devel-8.44-2.oe1.x86_64.rpm &#xff0c; inst…

LED屏幕信息安全如何预防?

随着科技的不断进步&#xff0c;LED屏幕在我们生活和工作中扮演着越来越重要的角色&#xff0c;然而&#xff0c;随之而来的是信息安全面临的挑战。为了有效预防LED屏幕信息的泄露和被盗取&#xff0c;我们需要采取一系列的安全措施。以下是一些建议&#xff1a; 物理安全措施&…

用C++和python混合编写数据采集程序?

之前看过一篇文章&#xff0c;主要阐述的就是多种语言混合编写爬虫程序&#xff0c;结合各种语言自身优势写一个爬虫代码是否行得通&#xff1f;觉得挺有意思的&#xff0c;带着这样的问题&#xff0c;我尝试着利用我毕生所学写了一段C和python混合爬虫程序&#xff0c;目前运行…

对于Windows就是找不到 环境变量 的解决

我认为将“我的电脑”从桌面上隐藏掉纯粹是傻逼行为 说下解决办法&#xff1a; 1. 找到文件资源管理器&#xff0c; 2. 右键点击“此电脑” -- 选择属性&#xff1a; 3. 进入属性界面&#xff0c;应该进入的是“关于”界面&#xff1a;选择“高级系统设置”&#xff1a; 4. 终…

ssm+vue的罪犯信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的罪犯信息管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

STM32---MDK工程创建

本节我们带领大家学习如何新建一个寄存器库版本MDK的详细步骤&#xff1b; 由于51单片机的学习时&#xff0c;所涉及的寄存器很少&#xff0c;所以往往几个头文件、驱动文件就可以完成相关的功能&#xff0c;但是对于STM32来讲&#xff0c;涉及的寄存器、头文件等都很多&#…

导入seaborn的数据集方法load_datasets的问题

sns.load_dataset使用报错解决URLError: &#xff1c;urlopen error [Errno 11004] getaddrinfo failed&#xff1e;&#xff08;windows&#xff09;&#xff09; import seaborn as sns import matplotlib.pyplot as plt ​ # 使用Seaborn自带的数据集 tips sns.load_datas…

nodejs使用node-cron实现定时任务功能

ChatGPT国内站点&#xff1a;海鲸AI 在Node.js中&#xff0c;node-cron是一个轻量级的任务调度库&#xff0c;它允许你根据类似于Cron的时间表来安排任务的执行。如果你想要每十分钟执行一次任务&#xff0c;你可以按照以下步骤来设置&#xff1a; 安装node-cron&#xff1a; 如…

Filebeat使用指南

Filebeat介绍主要优势主要功能配置日志的解析Kibana中设置日志解析安装步骤安装Filebeat安装监控通过prometheus监控 Filebeat和Logstash的主要区别 Filebeat介绍 Filebeat是使用Golang实现的轻量型日志采集器&#xff0c;也是Elasticsearch stack的一员。它可以作为一个agent…

Kubernetes 使用插件扩展 kubectl

例子演示 编写 kubectl-foo &#xff0c;拷贝至 /usr/local/bin/ #!/bin/bash# 可选的参数处理 if [[ "$1" "version" ]] thenecho "1.0.0"exit 0 fi# 可选的参数处理 if [[ "$1" "config" ]] thenecho $KUBECONFIGexit…

CSS BFC特性和应用

目录 1&#xff0c;介绍2&#xff0c;BFC布局规则3&#xff0c;创建BFC4&#xff0c;BFC应用1&#xff0c;浮动子元素使父级高度坍塌2&#xff0c;非浮动元素被浮动元素覆盖3&#xff0c;margin 合并1&#xff0c;父子 margin 合并&#xff1a;父级和第1个/最后1个子元素2&…

深度学习之基于Django文本情感分析识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在文本情感分析领域的应用已经取得了显著的进展。Django是一个流行的Python Web框架&#xff0c;它可以帮助…

代码随想录算法训练营第39天| 62.不同路径 63. 不同路径 II

JAVA代码编写 62.不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不…

Linux常用命令汇总

文章目录 Linux系统命令内存相关文件相关 GitGit常用的shell脚本 整理如下&#xff0c;随时补充更新&#xff1a; Linux系统命令 内存相关 # 查看内存占用最高的进程 ps aux --sort-%mem | head ps aux --sort-%cpu | headtop&#xff0c;按照M按照内存排序&#xff0c;按下…

灰度发布专题---3、Nginx+Lua灰度发布

上一章已经讲解了配置文件灰度发布、应用版本灰度发布、API网关灰度发布实现&#xff0c;但如果用户这时候在代理层如何做灰度发布呢&#xff1f; 代理层灰度发布分析 用户无论访问应用服务还是静态页&#xff0c;都要经过Nginx代理层&#xff0c;我们可以在Nginx这里做灰度发…