在服务器上使用Dockerfile创建springboot项目的镜像和踩坑避雷

news2024/9/21 14:32:20

1. 准备个文件夹

这是我的路径

/usr/local/springboot/docker-daka/docker_files

2. 将jar包上传

springboot项目打包——maven的package
这是整个项目打包的模式,也可以分离依赖、配置和程序进行打包,详情看我这篇文章:
springboot依赖 配置 程序 分离打包成jar包
这里我以不分离的模式演示:

  • 将上面这个jar包上传至步骤1创建的目录下
    在这里插入图片描述

  • 我这里使用的是宝塔面板进行辅助,点击文件,直接将jar包拖入右侧空白处就能上传
    在这里插入图片描述

3. 创建Dockerfile文件,并进行配置

这是我的配置,比较简单,更详细的配置请看这篇:
使用Dockerfile构建镜像
在这里插入图片描述

4. 构建镜像

docker build -t test-daka .

test-daka是镜像名字
命令最后一个是点,切记不要忘记

5. 构建容器

docker run -d --name daka -p 11003:11003 test-daka

容器名字是daka
宿主机和容器端口都是11003
使用的镜像是test-daka

在上述操作中,步骤5有个坑。
用ai搜了一下午,没搞定,自己搜了一下,秒找到答案,希望大家适当用ai。
以下是完整的报错:

docker: Error response from daemon: driver failed programming external connectivity on endpoint daka (xxxxxxxxxxxxxxxxxxxxxxxxxxx):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 11003 -j DNAT --to-destination xxx.xx.x.x:11003 ! -i docker0: iptables: No chain/target/match by that name.

解决方案

  • ① 检查内核模块
lsmod | grep br_netfilter

如果输出中没有br_netfilter,需要加载该模块。命令如下:

sudo modprobe br_netfilter
  • ② 手动添加iptables规则
sudo iptables -P FORWARD ACCEPT
sudo iptables -A FORWARD -i docker0 -j ACCEPT
sudo iptables -A FORWARD -o docker0 -j ACCEPT

这些规则将允许Docker容器与主机和其他容器进行网络通信。

  • ③ 重启Docker服务
sudo systemctl restart docker

我是步骤①正常,手动执行了步骤②和③ ,再执行步骤5构建容器的命令,就正常了。

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

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

相关文章

java基础 之 集合与栈的使用(四)

文章目录 Queue栈Stack队列和栈的区别小扩展自己写个简单的队列自己写个简单的栈使用栈来实现个队列使用队列来实现个栈写在最后 前文回顾: 戳这里 → java基础 之 集合与栈的使用(一) 戳这里 → java基础 之 集合与栈的使用(二&a…

windows中node版本的切换(nvm管理工具),解决项目兼容问题 node版本管理、国内npm源镜像切换(保姆级教程,值得收藏)

前言 在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是为…

【Git】git 从入门到实战系列(二)—— git 介绍以及安装方法 (文末附带视频录制操作步骤)

文章目录 一、前言二、git 是什么三、版本控制系统是什么四、本地 vs 集中式 vs 分布式本地版本控制系统集中式版本控制系统分布式版本控制系统 五、安装 git 一、前言 本系列上一篇文章【Git】git 从入门到实战系列(一)—— Git 的诞生,Lin…

Linux系统编程 --- 基础IO

形成共识原理: 1、文件 内容 属性 2、文件分为打开的文件和没打开的文件 3、打开的文件:谁打开?进程!--- 本质是研究进程和文件的关系! 文件被打开,必须先被加载到内存! 一个进程可以打开…

PyTorch 训练自定义功能齐全的神经网络模型的详细教程

在前面的文章中,老牛同学介绍了不少大语言模型的部署、推理和微调,也通过大模型演示了我们的日常的工作需求场景。我们通过大语言模型,实实在在的感受到了它强大的功能,同时也从中受益颇多。 今天,老牛同学想和大家一…

【Android Studiio】default activity 原生安卓和uniapp默认启动分析

文章目录 思路: 一、原生安卓二、uniapp 探究方向:找到Default Activity 思路: 在Android开发中,"default activity"这个概念通常指的是应用启动时默认会加载和显示的那个Activity。AndroidManifest.xml文件是Android…

基于Selenium实现操作网页及操作windows桌面应用

Selenium操作Web页面 Why? 通常情况下,网络安全相关领域,更多是偏重于协议和通信。但是,如果协议通信过程被加密或者无法了解其协议构成,是无法直接通过协议进行处理。此时,可以考虑模拟UI操作,进而实现相…

声音和数据之间的调制解调 —— 电报机和电传打字机如何影响计算机的演变

注:机翻,未校对。 The Squeal of Data The through line between the telegraph and the computer is more direct than you might realize. Its influence can be seen in common technologies, like the modem. 电报和计算机之间的直通线比你想象的要…

基于IOT架构的数据采集监控平台!

LP-SCADA数据采集监控平台是蓝鹏测控推出的一款聚焦于工业领域的自动化数据采集监控系统, 助力数字工厂建设的统一监控平台。 为企业提供从下到上的完整的生产信息采集与集成服务,从而为企业综合自动化、工厂数字化及完整的"管控一体化”的解决方案…

LockSupport详解

文章目录 理解可重入锁LockSupport线程等待唤醒机制(wait/notify) waitNotify限制awaitSignal限制LockSupport重点说明 理解可重入锁 可重入锁的种类: 隐式锁(即synchronized关键字使用的锁)默认是可重入锁。 同步代…

站在临床数据科学的角度,药物试验归根结底是这两大假设

在临床数据科学的领域中,药物试验的设计和实施是评估药物效果及其安全性的关键环节。药物试验的基础无外乎两大核心假设:有效性与安全性。这两个假设不仅是药物试验的起点,也是整个研究过程中的重要指导原则。 药物试验的核心主旨在于对待测试…

Python高性能计算:进程、线程、协程、并发、并行、同步、异步

这里写目录标题 进程、线程、协程并发、并行同步、异步I/O密集型任务、CPU密集型任务 进程、线程、协程 进程、线程和协程是计算机程序执行的三种不同方式,它们在资源管理、执行模型和调度机制上有显著的区别。以下是对它们的详细解释和比较: 进程&…

一款有趣的工具,锁定鼠标键盘,绿色免安装

这是一款完全免费的程序,可以实现在不锁定屏幕的情况下锁定鼠标键盘,让鼠标键盘无法操作。比较适合防止误碰鼠标键盘,以及离开电脑时不希望别人操作自己的电脑。 ★★★★★锁定鼠标键盘工具:https://pan.quark.cn/s/e5c518a2165…

路由配置修改(五)

一、默认约定式路由 1、umi 会根据 pages 目录自动生成路由配置。 * name umi 的路由配置* description 只支持 path,component,routes,redirect,wrappers,name,icon 的配置* param path path 只支持两种占位符配置,第一种是动态参数 :id 的形式,第二种…

win11 intel新显卡控制面板无自定义分辨率选项解决

问题 下图是现在的intel显卡控制面板,不知道为啥变得很傻瓜式了,连所有显卡控制面板都有的分辨率自定义也被干掉了。 解决方式 其实解决很简单,因为自定义分辨率对显卡玩游戏来说还是很常用的,intel在beta版又加回来了&#x…

样式与特效(2)——新闻列表

1.盒子模型的边距概念 ) Margin-top 上面 Margin-bottom 底部 Margin-right 右边 Margin-left 左边 Margin : 10px (上下左右都是10px) Margin :10px,20px (上下边距10px 左右20px) CSS里面最重要的属性之一 将页面理解成…

C++ | Leetcode C++题解之第316题去除重复字母

题目&#xff1a; 题解&#xff1a; class Solution { public:string removeDuplicateLetters(string s) {vector<int> vis(26), num(26);for (char ch : s) {num[ch - a];}string stk;for (char ch : s) {if (!vis[ch - a]) {while (!stk.empty() && stk.back(…

C#值类型和引用类型,类和结构体

1、类class是引用类型&#xff0c;多个引用类型变量的值会互相影响。存储在堆&#xff08;heap&#xff09;上 2、结构体struct是值类型&#xff0c;多个值类型变量的值不会互相影响。存储在栈&#xff08;stack&#xff09;上 using System; using System.Collections.Generi…

PTA题目|象限的判断(python)

题目要求 输入一对坐标&#xff0c;输出它在直角坐标系中的象限。 输入格式: 输入坐标(x,y)&#xff0c;&#xff08;假设输入的x或y坐标值一定不会为0&#xff09;如&#xff1a;(3.5,-2)。 输出格式: 输出对应的象限&#xff0c;如&#xff1a;第四象限 输入样例: 在这…

Python | Leetcode Python题解之第315题计算右侧小于当前元素的个数

题目&#xff1a; 题解&#xff1a; import numpy as np from bisect import bisect_leftclass Solution:max_len 10000c []buckets []def countSmaller(self, nums: List[int]) -> List[int]:self.c [0 for _ in range(len(nums) 5)]counts [0 for _ in range(len(…