使用 idea 命令行构建 Docker 镜像并部署到云服务器

一、准备 Dockerfile

在项目根目录创建 Dockerfile

复制代码
FROM eclipse-temurin:8-jre-alpine

MAINTAINER waituibao@163.com

# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN mkdir -p /waituibao-mobile-login
WORKDIR /waituibao-mobile-login

EXPOSE 7001

# 拷贝 Jar 包
ADD ./target/waituibao-mobile-login-1.0.0.jar ./

# 启动命令
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar waituibao-mobile-login-1.0.0.jar

二、构建项目 Jar 包

在 IDEA 底部 Terminal 命令行执行:

复制代码
mvn clean package -DskipTests

构建成功后,Jar 会出现在:

复制代码
target/waituibao-mobile-login-1.0.0.jar

三、构建 Docker 镜像

在 IDEA 底部 Terminal 命令行执行:

复制代码
docker build -t waituibao-mobile-login .

构建成功后可查看镜像:

复制代码
docker images

输出示例:

复制代码
REPOSITORY               TAG       IMAGE ID       CREATED         SIZE
waituibao-mobile-login   latest    6e0addab0c47   2 minutes ago   480MB

四、导出镜像为 .tar 文件

在 IDEA 底部 Terminal 命令行执行:

复制代码
docker save -o waituibao-mobile-login.tar waituibao-mobile-login

此文件即可上传到服务器。

五、上传镜像到服务器

waituibao-mobile-login.tar 上传到服务器目录:

复制代码
/root/docker/p-images/

六、在服务器导入镜像

连接服务器后执行:

复制代码
docker load -i /root/docker/p-images/waituibao-mobile-login.tar

导入成功后使用:

复制代码
docker images

查看本地镜像是否存在。

七、启动容器

方式一:普通启动

复制代码
docker run -d --name waituibao-mobile-login -p 7002:7002 waituibao-mobile-login:latest

方式二:指定网络启动

如果项目需要服务间(微服务)互相调用(例如需要访问 Redis、MySQL 等),可以加入已有 Docker 网络:

复制代码
docker run -d --name waituibao-mobile-login --network waituibao_boot -p 7002:7002 waituibao-mobile-login:latest

容器启动后即可访问:

复制代码
http://服务器IP:7002
相关推荐
handsomestWei14 小时前
Docker引擎API接入配置
运维·http·docker·容器·api
si莉亚14 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
Tingjct15 小时前
Linux常用指令
linux·运维·服务器
广州灵眸科技有限公司15 小时前
为RK3588注入澎湃算力:RK1820 AI加速卡完整适配与评测指南
linux·网络·人工智能·物联网·算法
IT界的老黄牛15 小时前
Linux 压缩命令实战:tar、gzip、bzip2、xz、zstd 怎么选?一篇讲清楚
linux·运维·服务器
IT WorryFree15 小时前
飞塔防火墙与第三方设备进行IPSEC故障诊断期间,用户可能会观察到以下错误:
linux·服务器·网络
12345,catch a tiger15 小时前
虚拟机ubuntu安装Vmware Tools
linux·运维·ubuntu
天若有情67316 小时前
【C++原创开源】formort.h:一行头文件,实现比JS模板字符串更爽的链式拼接+响应式变量
开发语言·javascript·c++·git·github·开源项目·模版字符串
凉、介16 小时前
别再把 PCIe 的 inbound/outbound、iATU 和 eDMA 混为一谈
linux·笔记·学习·嵌入式·pcie
辰风沐阳16 小时前
OpenClaw 安装教程(Ubuntu 24.04 Desktop)
linux·ubuntu