Dockerfile打包部署常用操作

news/2024/7/7 18:57:40 标签: docker

文章目录

  • 1、Dockerfile部署java程序(jar包)
    • 1.1、创建Dockerfile
    • 1.2、将Dockerfile和要上传的jar包放到一个目录下,构建镜像
    • 1.3、创建启动容器
  • 2、Dockerfile部署vue
    • 2.1、创建dockerfile文件
    • 2.2、将打包的dist文件放到dockerfile同文件目录下
    • 2.3、在dockerfile同目录文件下创建目录conf.d,在conf.d下创建web.conf文件
    • 2.4、到Dockerfile执行打包镜像命令
    • 2.5、创建并运行容器


1、Dockerfile部署java程序(jar包)

1.1、创建Dockerfile

FROM java:8
MAINTAINER qingsong
VOLUME /home/wqswork/demofirst
ADD summer.jar demo1.jar
EXPOSE 8030
ENTRYPOINT ["java","-jar","demo1.jar"]
# 下面这句话限制容器的内存
#ENTRYPOINT ["/opt/infosec/cssp/jdk1.8.0_202/bin/java","-jar","-Xms1024m", "-Xmx1024m","-XX:+PrintGCDetails", "-XX:+PrintGCTimeStamps", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/infosec/cssp", "-Xloggc:/opt/infosec/cssp","/opt/infosec/cssp/cssp-csm.jar"]
# 下面这句是运行带配置文件的
#ENTRYPOINT ["java","-jar","demo1.jar", "--spring.profiles.active=dev"]
  • from java:8 拉取一个jdk为1.8的docker image
  • MAINTAINER qingsong 作者是qingsong
  • VOLUME /home/wqswork/demofirst 持久化地址
  • summer.jar 就是你上传的jar包,替换为jar包的名称
  • demo1.jar 是你将该jar包重新命名为什么名称,在容器中运行
  • expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
  • entrypoint 容器启动之后执行的命令,java -jar demo1.jar 即启动jar

1.2、将Dockerfile和要上传的jar包放到一个目录下,构建镜像

# 注:一定要加“.”,否则构建失败
docker build -t demo1 .

1.3、创建启动容器

#这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always
docker run -d --restart=always --name demotest -p 8040:8030  demo1

2、Dockerfile部署vue

dockerfile_37">2.1、创建dockerfile文件

dockerfile">#wqs_20210331 dockerfile
#使用 nginx最新版本作为基础镜像
FROM nginx

# 删除原来nginx自带的配置文件
RUN rm -vf /etc/nginx/conf.d/default.conf
# 复制自己写的配置文件
COPY ./conf.d/ /etc/nginx/conf.d/
#将当前文件夹的dist文件复制到容器的/usr/share/nginx/html目录
COPY ./dist /usr/share/nginx/html/

#声明运行时容器暴露的端口(容器提供的服务端口,nginx这里默认式80端口,所以可以注释掉)
#EXPOSE 8080

#CMD:指定容器启动时要运行的命令
CMD ["nginx", "-g", "daemon off;"]

dockerfile_57">2.2、将打包的dist文件放到dockerfile同文件目录下

dockerfileconfdconfdwebconf_58">2.3、在dockerfile同目录文件下创建目录conf.d,在conf.d下创建web.conf文件

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /api/{
                proxy_pass http://172.17.0.1:7000/;
                proxy_redirect default;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

2.4、到Dockerfile执行打包镜像命令

  docker build -t my-vue-test .
  # 出现以下描述,构建镜像完成
  Successfully built 1a42038957c7
  Successfully tagged my-vue-test:latest

2.5、创建并运行容器

  docker run -d --restart=always --name myvue01 my-vue-tes

http://www.niftyadmin.cn/n/5537360.html

相关文章

公共事件应急日常管理系统-计算机毕业设计源码40054

公共事件应急日常管理系统的设计与实现 摘 要 本研究基于Spring Boot框架,设计并实现了公共事件应急日常管理系统,旨在提升公共事件的应急响应和日常管理效率。系统包括应急资源管理、物资申请管理、物资发放管理、应急培训管理、科普宣教管理、公共事件…

RedHat9 | kickstart无人值守批量安装

一、知识补充 kickstart Kickstart是一种用于Linux系统安装的自动化工具,它通过一个名为ks.cfg的配置文件来定义Linux安装过程中的各种参数和设置。 kickstart的工作原理 Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,…

【大语言模型系列之Transformer】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

HarmonyOS APP应用开发项目- MCA助手(Day01持续更新中~)

简言: gitee地址:https://gitee.com/whltaoin_admin/money-controller-app.git端云一体化开发在线文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/agc-harmonyos-clouddev-view-0000001700053733-V5 注&#xff1…

【RNN练习】LSTM-火灾温度预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前期准备工作 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn1. 导入数据 data pd.read_cs…

上海市计算机学会竞赛平台2023年2月月赛丙组区间的并

题目描述 给定一个数轴上的 𝑛n 个闭区间,第 𝑖i 个闭区间的两端点为[𝑎𝑖,𝑏𝑖][ai​,bi​],它们的并集可以表示为若干不相交的闭区间,请按照左端点从小到大的顺序输出…

mybatispuls 分页插件的基本原理是什么?

MyBatis-Plus 是一个基于 MyBatis 的增强框架,它提供了许多额外的功能,其中分页插件是一个常用的功能。分页插件的基本原理是拦截 SQL 语句,在执行查询之前对 SQL 进行修改,以实现分页的功能。以下是 MyBatis-Plus 分页插件的基本原理及其工作机制: 1. 基本原理 分页插件…

【解码现代 C++】:实现自己的智能 【String 类】

目录 1. 经典的String类问题 1.1 构造函数 小李的理解 1.2 析构函数 小李的理解 1.3 测试函数 小李的理解 1.4 需要记住的知识点 2. 浅拷贝 2.1 什么是浅拷贝 小李的理解 2.2 需要记住的知识点 3. 深拷贝 3.1 传统版写法的String类 3.1.1 拷贝构造函数 小李的理…