服务器docker部署项目

1.maven打包jar

2.项目根目录新建 Dockerfile 文件 ,内容:

perl 复制代码
# 用 JDK 8 作为基础镜像(你是 JDK 1.8)
FROM openjdk:8-jdk-alpine

# 维护者信息(可选)
LABEL maintainer="597172583@qq.com"

# 把 jar 包复制到容器
COPY bootapi-0.0.1-BOOTAPI.jar bootapi.jar

# 暴露 Spring Boot 端口(根据你项目配置改)
EXPOSE 8800

# 启动命令
ENTRYPOINT ["java", "-jar", "/bootapi.jar", "--spring.profiles.active=prod"]

3.xftp上传服务目录/opt/项目名称 (jar 和 Dockerfile)

4.服务器安装docker

bash 复制代码
# 安装必要工具
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加 Docker 源(用阿里云镜像源加速)
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装 Docker
yum install -y docker-ce docker-ce-cli containerd.io

# 启动 Docker
systemctl start docker
systemctl enable docker

# 验证
docker -v

5.添加docker下载镜像地址,国外镜像下载会报错

参考文章:blog.csdn.net/Coastlise/a...

bash 复制代码
1. cd /etc/docker

2. sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.registry.cyou/",
        "https://docker-cf.registry.cyou/",
        "https://dockercf.jsdelivr.fyi/",
        "https://docker.jsdelivr.fyi/",
        "https://dockertest.jsdelivr.fyi/",
        "https://mirror.aliyuncs.com/",
        "https://dockerproxy.com/",
        "https://mirror.baidubce.com/",
        "https://docker.m.daocloud.io/",
        "https://docker.nju.edu.cn/",
        "https://docker.mirrors.sjtug.sjtu.edu.cn/",
        "https://docker.mirrors.ustc.edu.cn/",
        "https://mirror.iscas.ac.cn/",
        "https://docker.rainbond.cc/",
        "https://jq794zz5.mirror.aliyuncs.com",
        "https://66a84trh.mirror.aliyuncs.com"]
}
EOF

3.重新加载配置
systemctl daemon-reload

4.重启docker
systemctl restart docker

5.查询配置是否生效
docker info

6.打包镜像和启动服务

ruby 复制代码
### 构建新镜像(更新 JAR 后)
1. cd /opt/你的项目目录
2. docker build -t bootapi-app .

注意:Docker 会自动读取 Dockerfile 吗?
**默认情况下**:
`docker build` 命令在你指定目录里寻找 **名为 `Dockerfile` 的文件**
例如:
cd /opt/bootapi
docker build -t bootapi-app .
`.` 表示当前目录
Docker 会自动在 `/opt/bootapi` 里找 **Dockerfile**找到后就按里面的指令构建镜像
如果 Dockerfile 不叫 `Dockerfile`**:
需要用 `-f` 指定:
docker build -t bootapi-app -f MyDockerfile .

### 启动新容器
3. docker run -d -p 8899:8899 --name bootapi bootapi-app

-p 8899:8899
**端口映射**(hostPort:containerPort)
左边 `8899` → 云服务器上的端口(宿主机)
右边 `8899` → 容器里 Spring Boot 实际监听的端口


### 启动成功查看日志
4. docker logs -f [docker进程名字]  由docker run启动时 --name bootapi指定
docker logs -f  bootapi

7.维护调试

markdown 复制代码
#停掉旧容器
1. docker stop bootapi

#删除旧容器
2. docker rm bootapi (可不执行)

#重新打包镜像
3.docker build -t bootapi-app .

#运行docker镜像
4. docker run -d -p 8899:8899 --name bootapi bootapi-app
相关推荐
刚子编程9 小时前
我用 ASP.NET Core 做了个水稻病虫害检查系统
后端·asp.net
谢亮_vipxieliang9 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
码事漫谈11 小时前
三步改掉 AI 味,附可直接复制的去 AI 味提示词
后端
IT_陈寒11 小时前
Redis卡顿的锅,这次真不是大key的错
前端·人工智能·后端
可乐鸡翅yeah_12 小时前
video.js 集成 hls.js 开发 M3U8 播放器,新手高频踩坑
开发语言·前端·javascript·后端·ecmascript·m3u8·音视频在线播放
程序猿_极客12 小时前
【免费】分享一套优质的基于SpringBoot的服装商城管理系统的设计与实现(带可视化图表、协同过滤功能),源码+文档+视频详解(讲解)
java·spring boot·后端·服装商城管理系统
明月_清风12 小时前
面对陌生的 GitHub 项目无从下手?这 4 个网站帮你快速读懂源码
前端·后端·github
bug菌13 小时前
🤔同事突然问我:Spring的注解 @Component 和 @Service 有何不同?
java·spring boot·后端
leobertlan13 小时前
痛苦系列 | DSP-02 频域切片:DTFT与DFT的探索
android·后端