docker应用安装之部署Springboot项目

本文详细介绍了如何使用Docker部署Springboot项目,包括编写Dockerfile,从基础镜像到容器启动命令的配置,以及如何生成镜像和运行容器。

docker部署springboot项目分为以下2步

  1. springboot项目的JAR包生成镜像文件。
  2. 将镜像文件生成容器,并完成部署。

一、springboot项目的JAR包生成镜像文件

  1. 编写Dockerfile文件。
    执行以下命令:
    mkdir docker  #创建docker文件夹
    cd  docker  
    vim Dockerfile #采用Dockerfile来创建images
    Dockerfile 中 输入以下代码,然后点击Esc键退出编辑后 输入wq保存文件:
    # Docker image for springboot file run
    # VERSION 0.0.1
    # Author: goodboby
    # 基础镜像使用java
    FROM java:8
    # 作者
    MAINTAINER goodboby <495186029@qq.com>
    # VOLUME 指定了临时文件目录为/tmp。
    # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
    VOLUME /tmp 
    # 将jar包添加到容器中并更名为app.jar
    ADD demo-0.0.1-SNAPSHOT.jar app.jar 
    # 运行jar包
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的
在 CentOS 7 的离线环境中安装 Docker 和 Kubernetes 并部署 Spring Boot 应用涉及多个步骤,包括准备依赖包、配置本地仓库、安装组件以及部署应用。以下是一个完整的指南。 ### 安装 Docker 1. **下载 Docker RPM 包** 在具有网络连接的环境中,使用 `yum` 下载适用于 CentOS 7 的 Docker CE 包: ```bash yum install --downloadonly --downloaddir=/path/to/save/rpms docker-ce docker-ce-cli containerd.io ``` 2. **将 RPM 包复制到目标机器** 将下载的所有 `.rpm` 文件复制到离线环境中的目标主机上。 3. **安装 Docker** ```bash rpm -ivh *.rpm ``` 4. **启动并启用 Docker 服务** ```bash systemctl start docker systemctl enable docker ``` 5. **验证安装** ```bash docker --version ``` ### 安装 Kubernetes 1.31.1 Kubernetes 需要安装 `kubeadm`, `kubelet`, 和 `kubectl`。由于是离线环境,需提前下载 RPM 包。 1. **下载 RPM 包** ```bash yum install --downloadonly --downloaddir=/path/to/save/rpms kubeadm-1.31.1 kubelet-1.31.1 kubectl-1.31.1 ``` 2. **复制 RPM 到目标系统并安装** ```bash rpm -ivh kubeadm-1.31.1*.rpm kubelet-1.31.1*.rpm kubectl-1.31.1*.rpm ``` 3. **启用并启动 kubelet** ```bash systemctl enable kubelet systemctl start kubelet ``` 4. **初始化 Kubernetes 集群(单节点)** ```bash kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 5. **配置 kubeconfig** ```bash mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config ``` 6. **部署 Pod 网络插件(如 Flannel)** ```bash kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` > 注意:在离线环境中,需要预先下载 `kube-flannel.yml` 文件[^1]。 ### 部署 Spring Boot 应用 1. **构建 Spring Boot Docker 镜像** 在有网络的环境中构建镜像,并导出为 tar 文件: ```bash docker build -t springboot-app . docker save springboot-app > springboot-app.tar ``` 2. **将镜像导入离线环境** ```bash docker load < springboot-app.tar ``` 3. **编写 Kubernetes 部署文件 `springboot-deployment.yaml`** ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: springboot-app spec: replicas: 1 selector: matchLabels: app: springboot template: metadata: labels: app: springboot spec: containers: - name: springboot image: springboot-app ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: springboot-service spec: type: NodePort selector: app: springboot ports: - protocol: TCP port: 80 targetPort: 8080 nodePort: 30080 ``` 4. **部署到 Kubernetes** ```bash kubectl apply -f springboot-deployment.yaml ``` 5. **访问应用** 使用任意节点 IP 加上 `nodePort`(例如 `http://<node-ip>:30080`)访问 Spring Boot 应用。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值