Docker 入门篇(六)-- idea 打包 docker 镜像流程

环境准备:

  • idea 环境:IntelliJ IDEA 2021.3.1 (Ultimate Edition)
  • docker 版本:v. 26.1.0
  • 准备 springboot jar 文件 :target/DockerDemo-0.0.1-SNAPSHOT.jar
  • docker 可视化管理工具 portainer :v2.6.0

一. 配置docker远程访问

1.在linux系统中查找docker.service文件,使用命令:find / -name docker.service
在这里插入图片描述

2.编辑 /usr/lib/systemd/system/docker.service文件,在ExecStart=/usr/bin/dockerd后面添加 -H tcp://0.0.0.0:2375
在这里插入图片描述

二. 配置 远程docker 服务连接

  1. 安装docker插件
    File->Settings->Plugins
    在这里插入图片描述

  2. 在 idea 文件-》设置 菜单中打开对话框,配置 docker 服务地址及端口号(默认 2375),并连接测试。
    在这里插入图片描述

三. 编写 Dockerfile 文件

在 项目 pom 同级目录中 添加 Dockerfile 文件

#先初始化Java环境;
FROM openjdk:8
#设置一个临时目录,项目运行时tomcat需要;
VOLUME /tmp/tomcat
#定义 端口
EXPOSE 8889
#将jar包复制并且重命名
ADD target/DockerDemo-0.0.1-SNAPSHOT.jar dockerDemo.jar
#编写运行时的命令
ENTRYPOINT ["java","-jar","/dockerDemo.jar"]

在这里插入图片描述

注:Dockerfile 规则 可以参考博客:Dockerfile文件详解

编辑 运行配置
在这里插入图片描述

运行配置文件

在这里插入图片描述
构建日志:
在这里插入图片描述

四. 测试访问服务地址

注:地址 ip 为docker 所在服务器地址

在这里插入图片描述

五、生产环境部署

  1. 导出 镜像文件 docker-demo.tar
docker save  docker-demo:v0.0.2  -o D:\developsoft\docker\DockerDesktopWSL\data\images\docker-demo.tar
  1. 导入生产环境
  • 方式一、使用 portainer 工具导入镜像

在这里插入图片描述

  • 方式二、命令行导入镜像,上传 镜像文件到服务器 /root 目录
docker load -i /root/docker-demo.tar
  1. 创建并启动容器
docker run --name docker-demo-container -d \
--restart unless-stopped \
-p 8889:8889\
docker-demo:v0.0.2
  1. 访问并查看 服务
    在这里插入图片描述

六. 问题记录

1.docker 环境无 Java 镜像 解决
#查找 Java 镜像

docker search openjdk

#拉取 Java 镜像

docker pull openjdk:8

2.端口映射 及创建容器

docker run -p 8889:8889 --name docker-demo-compose docker-demo:latest

参考博客:

IDEA之Docker部署项目篇 https://blog.csdn.net/weixin_42183288/article/details/124864681
docker 容器相关操作 详解 https://blog.csdn.net/qq_39237205/article/details/126501290
docker 容器与镜像区别详解 https://zhuanlan.zhihu.com/p/342894368
Docker 镜像拉取(以mysql 为例) https://blog.csdn.net/weixin_47560078/article/details/126189386

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端面试题大合集3----网络篇

一、Http协议详解,http请求方式,http状态码 Http协议详解: 全称Hyper Text Transfer Protocol,即超文本传输协议,是互联网上应用最为广泛的一种网络传输协议。 是一个无状态的应用层协议,即不会保存客户…

【管理咨询宝藏92】国际咨询公司为大型药企数字化转型项目规划方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏92】国际咨询公司为大型药企数字化转型项目规划方案 【格式】PDF版本 【关键词】国际咨询公司、药企转型、数字化转型 【核心观点】 - 企业业务…

51-48 CVPR 2024 | Vlogger: make your dream a vlog 自编剧制作视频博客

24年1月,上海交大、上海人工智能实验室、中科院联合发布Vlogger:make your dream a vlog。该论文主要工作是生成超过5分钟的视频博客vlog。鉴于现有文本到视频T2V生成方法很难处理复杂的故事情节和多样化的场景,本文提出了一个名为Vlogger的通…

百度文库最新AI旋转验证码

上个月发现百度文库最新出了一个验证码,是AI生成的。内容每次可能都不一样,所以给识别造成 了很大困难。传统的比对放松完全失效。 一、介绍 这个是最近才出的最新验证码,内容主要以工厂、建筑、山峰、机器人、汽车、盆栽植物等为主。如下图…

Elasticsearch:如何使用 Java 对索引进行 ES|QL 的查询

在我之前的文章 “Elasticsearch:对 Java 对象的 ES|QL 查询”,我详细介绍了如何使用 Java 来对 ES|QL 进行查询。对于不是很熟悉 Elasticsearch 的开发者来说,那篇文章里的例子还是不能单独来进行运行。在今天的这篇文章中,我来详…

【DPU系列之】Bluefield 2 DPU卡的功能图,ConnectX网卡、ARM OS、Host OS的关系?(通过PCIe Switch连接)

核心要点: CX系列网卡与ARM中间有一个PCIe Swtich的硬件单元链接。 简要记录。 可以看到图中两个灰色框,上端是Host主机,下端是BlueField DPU卡。图中是BF2的图,是BF2用的是DDR4。DPU上的Connect系列网卡以及ARM系统之间有一个…

第一课为SimaPro的基本特征

问题: 咖啡机的设计中的环境影响指标。 step 1 点击Wizards,看到“Guided tour (with coffee)”。 在这个例子里, 定义了两种咖啡机: Sima型咖啡机 和 Pro型咖啡机, 具有以下规格: Sima型咖啡机 Pro型咖啡…

MySQL——Windows平台下MySQL安装与配置(一)MySQL安装

Windows平台下安装和配置 基于Windows平台的MySQL安装文件有两个版本,一种是以.msi作为后缀名的二进制分发版,一种是以.zip作为后缀的压缩文件。其中.msi的安装文件提供了图形化的安装向导,按照向导提示进行操作即可安装完成,.zip…

7-92 骨牌铺方格

在2n的一个长方形方格中,用一个12的骨牌铺满方格,输入n,输出铺放方案的总数。例如n3时,骨牌的铺放方案有3种,如下图所示。 输入格式: 测试数据有多组,处理到文件尾。每组测试输入一个整数n(0&l…

【华为】AC直连二层组网隧道转发实验配置

【华为】AC直连二层组网隧道转发实验配置 实验需求拓扑配置AC数据规划表 AC的配置顺序AC1基本配置(二层通信)AP上线VAP组关联--WLAN业务流量 LSW1AR1STA获取AP的业务流量 配置文档 实验需求 AC组网方式:直连二层组网。 业务数据转发方式:隧道转发。 DHC…

[JUCE]从一个有关右值引用的bug,探幽移动语义

一、问题 当我尝试在\JUCE\extras\WindowsDLL\Builds\VisualStudio2022目录下编译JUCE库的时候,提示报错如下: 报错提示如下: 这里涉及到两个问题 一、这个std::move是干嘛用的 二、为什么这里会报错? 另外,我在实…

Mybatis进阶2

Mybatis进阶1-CSDN博客 Mybatis入门-CSDN博客 Mybatis入门2-CSDN博客 我们接下来要学习Mybatis的高级查询 我们先在数据库中准备我们需要的数据表 teacher表 课程表:与教师表是一对多的关系,所以有一个外键字段 学生表 由于学生表和课程表是多对多的…

Android selinux权限

一.SE 概述 SELinux 是由美国NSA(国安局)和 SCC 开发的 Linux的一个扩张强制访问控制安全模块。原先是在Fluke上开发的,2000年以 GNU GPL 发布。从 fedora core 2开始, 2.6内核的版本都支持SELinux。 在 SELinux 出现之前&#…

智慧公厕打造公共厕所智慧化管理模式

智慧公厕如何打造智慧化的管理模式?随着智能科技的快速发展,智慧公厕成为了城市管理的一项重要工作。智慧公厕的智能化管理不仅可以提升公厕的整体管理水平,还能为市民提供更加便捷、舒适的使用体验。本文将以智慧公厕源头实力厂家广州中期科…

Qt QImageWriter类介绍

1.简介 QImageWriter 用于写入图像文件的类。它提供了将 QImage 对象保存到不同图像格式文件的功能,包括但不限于 PNG、JPEG、BMP 等。QImageWriter 可以将图像写入文件,也可以写入任何 QIODevice,如 QByteArray,这使得它非常灵活…

CGAL 网格简化

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 为了提高网格处理的效率,通常需要将过于冗长的3D数据集简化为更简洁而又真实的表示。尽管从几何压缩到逆向工程有许多应用,但简洁地捕捉表面的几何形状仍然是一项乏味的任务。CGAL中则为我们提供了一种通过变分几…

MSYS2 Pacman常用命令--以及实际中安装linux命令

MSYS2 Pacman常用命令--以及实际中安装linux命令: 有时候需要使用linux下的命令,用这个工具就是可以实现内容 虽然现在在windows下的wsl命令以及可以很好的使用linux了,但是MSYS2也是个不错的工具: 如何下载linux下nc&#xff0c…

Nodejs-内存控制(垃圾回收机制)(新生代老生代)(Scavenge算法)

内存控制 v8的垃圾回收机制和内存限制 对于性能敏感的服务器端程序,内存管理的好坏,垃圾回收状态的优良成都,都会对服务器造成影响 Node和V8 Node在JavaScript的执行上受益于v8,随着v8的升级享受到更好的性能和性的语言特征。…

详解基于 RAG 的 txt2sql 全过程

前文 本文使用通义千问大模型和 ChromaDB 向量数据库来实现一个完整的 text2sql 的项目,并基于实际的业务进行效果的展示。 准备 在进行项目之前需要准备下面主要的内容: python 环境通义千问 qwen-max 模型的 api-keyChromaDB 向量数据库acge_text_…

一款 NodeJS 版本管理工具 NVM (Windows)

一、简介 Node Version Manager(NVM)是一种用于管理多个 NodeJS 版本的工具。在日常工作中,我们可能同时在进行多个不同的项目开发,每个项目的需求不同,依赖与不同版本的NodeJS 运行环境。这种情况下,维护…