Docker 从入门到实战系列(四):镜像 / 容器导入导出、容器互联与 SpringBoot 微服务打包
在 Docker 的实际使用中除了基础的镜像和容器操作镜像与容器的导入导出、容器之间的网络互联以及将 SpringBoot 微服务打包为 Docker 镜像都是高频的进阶操作。这些操作能极大提升 Docker 在项目部署、环境迁移和微服务架构中的实用性本文将详细讲解这四类核心操作的实现步骤。一、镜像的导入和导出在实际工作中我们常常需要将本地构建好的 Docker 镜像迁移到其他服务器这时候就需要用到镜像的导入和导出功能Docker 提供了save和load命令来实现该需求操作简单且高效。1. 镜像导出将本地已有的 Docker 镜像保存为压缩包文件支持两种命令格式推荐使用镜像名 标签的方式可读性更高。# 格式1通过重定向导出 docker save 镜像名:tag 压缩包名.tar # 格式2通过-o参数指定导出文件更推荐 docker save -o 压缩包名.tar 镜像名:tag # 示例导出nginx最新版镜像为nginx.tar docker save -o nginx.tar nginx:latest执行完成后当前目录会生成对应的.tar压缩包该包包含了镜像的完整分层结构和配置信息。2. 镜像导入将导出的镜像压缩包载入到本地 Docker 镜像仓库同样支持两种命令格式导入后可直接通过docker images查看镜像信息。# 格式1通过-i参数指定导入文件 docker load -i 压缩包名.tar # 格式2通过重定向导入 docker load 压缩包名.tar # 示例导入nginx.tar镜像包 docker load -i nginx.tar二、容器的导入和导出镜像的导入导出针对的是静态的镜像文件而容器的导入导出则是针对运行中的容器实例可以将容器的当前状态保存为压缩包迁移后恢复为新的镜像适合对容器定制化后的环境迁移。1. 容器导出将指定的容器运行中或停止状态均可导出为镜像压缩包使用docker export命令通过-o参数指定导出文件。# 格式docker export 容器ID/容器名 -o 压缩包名.tar # 示例将ID为5cd4ed01b84c的mysql容器导出为mysqlv001.tar docker export 5cd4ed01b84c -o mysqlv001.tar2. 容器导入将容器导出的压缩包导入为本地新的 Docker 镜像使用docker import命令需指定新镜像的名称和标签。# 格式docker import 压缩包名.tar 新镜像名:新标签 # 示例将mysqlv001.tar导入为mysql:v002镜像 docker import mysqlv001.tar mysql:v0023. 容器信息查看导入后可通过docker inspect命令查看容器 / 镜像的详细元数据包括网络配置、挂载目录、环境变量等方便验证导入结果。# 格式docker inspect 容器ID/容器名/镜像ID/镜像名 docker inspect 5cd4ed01b84c三、容器互联Docker 中容器默认是相互隔离的但在实际项目中多个容器之间往往需要通信如 Tomcat 容器访问 MySQL 容器这就需要配置容器互联。Docker 的容器通信基于虚拟网络实现核心分为宿主机访问容器、同网络容器互访、跨网络容器互访三种场景。1、宿主机访问容器通过网络映射将宿主机的端口和容器的端口建立映射。当外网访问宿主机的端口时宿主机会将请求发给容器映射的端口。docker run -itd 宿主机端口:容器端口 .... 镜像2、同一宿主机下的容器之间相互访问(1) 虚拟网络docker 守护进程 (docker 引擎) 是可以创建虚拟网络的。默认的网络名称叫 docker0 。创建容器时如果没有指定加入哪个网络默认加入 docker0 容器会被分配172.17.0.X段 IP网关 gateway 为172.17.0.1。tomcat1tomcat2:在同一个网络中的容器是可以相互通信的测试时若容器未自带 ping 命令需先安装#进入容器执行 apt-get update apt install iputils-ping #使用ping命令测试容器间通信 ping 目标容器IPping:实验证明同一个网络下的 docker 容器可通过局域网 IP 相互通信。(2)容器通信图(3)网络模式[ rootiZbp 1ewOz fkjblswvyxb1jZ ~]# docker network ls NETWORK ID ed62d580742c NAME bridge DRIVER bridge local SCOPE dd350a152c0a 4b00268086b4 host none host null local local3、创建新网络docker network create -d bridge 网络名创建容器时可通过指定网络将容器划分至不同网络组tomcat1 和 tomcat2 在 docker0 网络中二者可通信tomcat3 和 tomcat4 在 mynet01 网络中二者可通信不同网络中的容器如 docker0 和 mynet01默认无法通信4、同一宿主机下的不同网络之间的通信如果tomcat1想要和tomcat3、tomcat4通信需要将tomcat1加入到mynet01网络中。这样tomcat1既在docker0中又在mynet01中。加入操作我们查看容器我们tomcat1去ping tomcat3四、SpringBoot 微服务打包 Docker 镜像1、构建 SpringBoot 项目注意如果项目中用到 mysql 数据库则事先需要把链接数据库的 ip 改为服务器的 ip 地址。2、打包运行测试成功即可将 SpringBoot 项目通过 Maven/Gradle 打包为 jar 包在本地执行java -jar 包名.jar测试确保项目能正常启动运行。3、编写 dockerfile注意docker 命令全部大写这是规定。# From 关键字表示jar包依赖的环境。java:8 相当于jdk1.8 FROM java:8 #ADD命令将本地jar包添加到容器中并自定义名称 # blog-0.0.1-SNAPSHOT.jar:这是你上传jar包的名称。也可以简写为: *.jar # /blog.jar:这是自定义的名称。但是注意要有之前的/ ADD blog-0.0.1-SNAPSHOT.jar /blog.jar #MAINTAINER 作者名称。可以删除不写。 MAINTAINER libowen #EXPOSE 项目暴露的端口号 EXPOSE 8080 #/blog.jar此处的名称要和ADD命令后面的一样。 ENTRYPOINT [java,-jar,/blog.jar]4、构建镜像4.1. 复制 jar 和 Dockerfile 到服务器将打包好的 SpringBoot jar 包和编写完成的 Dockerfile 文件上传到目标服务器如阿里云服务器的同一目录下。4.2. 构建镜像docker build -t 镜像名:标签 . # 示例 [rootbowen springboot]# docker build -t student:1.0 .构建完成后可通过docker images查看构建好的镜像信息。5、发布运行5.1 使用镜像创建容器docker run -itd -p 80:80 --name 容器名 镜像名:标签 /bin/bash # 示例 docker run -itd -p 80:80 --name student student:1.0 /bin/bash5.2 启动容器docker start 容器名 # 示例 docker start student5.3 访问通过服务器 IP 映射的宿主机端口即可访问部署在 Docker 容器中的 SpringBoot 微服务例如http://47.92.175.245映射 80 端口时可省略端口号。使用 Docker 部署 SpringBoot 微服务后给他人交付仅需提供构建好的 Docker 镜像即可实现 “一次构建到处运行”。

相关新闻

数据库连接遇到的问题——密码为纯数字

数据库连接遇到的问题——密码为纯数字

YAML中纯数字密码被解析为数值型纯数字密码如0827在YAML中可能被解析为八进制,0827535,或去掉前导零。解决方案给密码加双引号

2026/7/3 22:59:05 阅读更多 →
学习记录贴-day6

学习记录贴-day6

今天把代码注释写了一下,了解了一下Trainer类但是没找到怎么用的lora微调模型,明天继续深究代码。

2026/5/17 9:16:55 阅读更多 →
2025年6月全国青少年软件编程等级考试(Python六级)解题

2025年6月全国青少年软件编程等级考试(Python六级)解题

1.这里我们选择b.ys()理由如下:2.这个d的选项错在没有self3.选择d4.5.选d

2026/7/4 23:36:44 阅读更多 →

最新新闻

GRPO训练燃料:把Hermes Agent Feedback变成强化学习信号

GRPO训练燃料:把Hermes Agent Feedback变成强化学习信号

GRPO训练燃料:把Agent Feedback变成强化学习信号 「Hermes Agent自进化智能体深度解析」系列 | 模块十六 第3篇 你的Agent积累了1000条执行轨迹。500条成功,500条失败。成功的路径有的快、有的慢,失败的失败方式各不相同。你盯着这些数据&a…

2026/7/5 9:08:34 阅读更多 →
艾尔登法环mod下载法魂Modv3.0安装指南

艾尔登法环mod下载法魂Modv3.0安装指南

法魂Mod是一款热度突破680万、持续更新超过三年的《艾尔登法环》大型大修模组。3.0版本带来了全新宝珠系统、大量原创武器与法术、DLC区域地图重置等重大更新,并兼容无缝联机与光荣商人等主流功能性模组。以下为完整安装流程与多Mod共存配置方法。 版本核心更新内容…

2026/7/5 9:08:34 阅读更多 →
x64dbg:Windows 逆向分析的开源调试器

x64dbg:Windows 逆向分析的开源调试器

文章目录x64dbg:Windows 逆向分析的开源调试器它能干什么为什么逆向圈都在用1. 填补了工具断层2. 插件生态起来了3. 真正的开源底层技术栈实际体验我的建议x64dbg:Windows 逆向分析的开源调试器 搞逆向工程的人都知道,调试器是吃饭的家伙。I…

2026/7/5 9:06:34 阅读更多 →
告别过时文档:用敏捷方法论+AI知识库实现实时文档最佳实践

告别过时文档:用敏捷方法论+AI知识库实现实时文档最佳实践

告别过时文档:用敏捷方法论AI知识库实现实时文档最佳实践我经常和产品团队的同事聊文档管理,发现一个普遍困境:要么文档写得像百科全书,没人看;要么干脆不写,后期维护成本爆表。其实,好的文档策…

2026/7/5 9:04:33 阅读更多 →
CTinspector架构深度解析:揭秘256字节轻量级Packet VM的设计奥秘

CTinspector架构深度解析:揭秘256字节轻量级Packet VM的设计奥秘

CTinspector架构深度解析:揭秘256字节轻量级Packet VM的设计奥秘 【免费下载链接】CTinspector multipule nodes ebpf flow inspector, initialed by CTyun 项目地址: https://gitcode.com/openeuler/CTinspector 前往项目官网免费下载:https://a…

2026/7/5 9:02:33 阅读更多 →
UADK调度器详解:同步与异步模式下的性能优化策略

UADK调度器详解:同步与异步模式下的性能优化策略

UADK调度器详解:同步与异步模式下的性能优化策略 【免费下载链接】uadk 项目地址: https://gitcode.com/openeuler/uadk 前往项目官网免费下载:https://ar.openeuler.org/ar/ UADK(User-space Accelerator Development Kit&#xff…

2026/7/5 9:02:33 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻