使用 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
相关推荐
2301_809051144 小时前
Linux 网络编程 学习笔记
linux·网络·学习
坤昱4 小时前
cfs调度类深入解刨——最新内核细节分析2
linux·服务器·cfs·cfs调度·eevdf调度·eevdf·kernel 7.1
艾莉丝努力练剑5 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约5 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行
eggcode5 小时前
【Qt学习】Linux(ARM架构)在线安装Qt6.x
linux·qt·学习·arm
wkd_0075 小时前
Ubuntu 22.04 Samba 连接故障排查记:从“用户名或密码错误”到 NTLM 版本不兼容
linux·运维·ubuntu
Jiude5 小时前
AI 写代码太快之后,团队协作反而更难了
人工智能·架构·github
mixboot6 小时前
Linux 进程工作目录查看利器:pwdx 命令详解
linux·运维·服务器
旺仔来了7 小时前
不联网的Linux下部署python环境
linux·开发语言·python
Irene19918 小时前
WSL 切换磁盘后验证完整性(MobaXterm、Powershell、WSL 的区别)
linux·wsl·mobaxterm