使用 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
相关推荐
zylyehuo5 小时前
Linux 彻底且安全地删除文件
linux
鹏毓网络科技17 小时前
Cursor Rules 文件配置实战:3 个隐藏参数让我每月少写 40% 样板代码
前端·github
用户8055336980318 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户0340952979118 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Patrick_Wilson1 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
嘻嘻仙人1 天前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
白鲸开源2 天前
Apache SeaTunnel Zeta Engine 的 Basic Auth 是怎么工作的?
java·vue.js·github
白鲸开源2 天前
一文读懂DolphinScheduler插件机制:如何轻松扩展任务类型与数据源
java·架构·github
Suroy2 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭2 天前
运行你的第一个Docker容器
后端·docker·容器