云部署-基于Docker的部署

目前有一个Spring Boot项目,内容非常的简单,向浏览器输出"Hello Docker!!"这句话。

package com.wisely.ch10;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Ch10Application {

	@RequestMapping("/")
	public String home() {
		return "Hello Docker!!";
	}
	
	public static void main(String[] args) {
		SpringApplication.run(Ch10Application.class, args);
	}

}

使用clean package命令将该项目打包成jar包

将jar文件传输到阿里云服务器的/var/apps/ch10docker目录下

在同级目录下创建一个Dockerfile文件命令如下:

touch Dockerfile

编辑内容为:

FROM java:8

MAINTAINER wyf

ADD ch10-0.0.1-SNAPSHOT.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

解释如下:

①基镜像为Java,版本为8,JDK的安装请参照我往期的文章。

②MAINTAINER为作者

③将ch10-0.0.1-SNAPSHOT.jar添加到镜像中,并重命名为app.jar

④运行镜像的容器,监听8080端口

⑤启动时运行java -jar app.jar

 

在/var/apps/ch10docker目录下执行如下命令:

docker build -t wisely/ch10docker .

其中wisely/ch10docker为镜像名称,这里设置wisely为前缀,这也是Docker镜像的一种明明习惯。

最后还有一个".",这时用来指明Dockerfile路径的,"."表示Dockerfile在当前路径下。

编译完成后查看本地镜像

 

通过下面命令运行

docker run -d --name ch10 -p 8080:8080 wisely/ch10docker

查看当前容器状态

ok,访问http://ip:8080,就可看到结果。

 

附(Dockerfile主要指令)

(1)FROM

指明了当前镜像继承的基镜像,编译当前镜像时会自动下载基镜像。

示例:

FROM ubuntu

(2)MAINTAINER

指明了当前镜像的作者。

示例:

MAINTAINER tjs

(3)RUN

可以在当前镜像上执行Linux命令并形成一个新的层。RUN是编译时的动作。

示例有如下两种格式,CMD和ENTRYPOINT也是如此:

RUN /bin/bash -c "echo helloworld"

RUN ["/bin/bash", "-c", "echo hello"]

(4)CMD

指明了启动镜像容器时的默认行为。一个Dockerfile里只能有一个CMD指令。CMD指令里设定的命令可以在运行镜像时使用参数覆盖。CMD是运行时的动作。

示例:

CMD echo "this is a test"

可被docker run -d image_name echo "this is a test"覆盖

(5)EXPOSE

指明了镜像运行时的容器必须监听指定的端口。

示例:

EXPOSE 8080

(6)ENV

可用来设置环境变量

示例:

ENV myName=tjs

ENV myName tjs

(7)ADD

从当前工作目录复制文件到镜像目录中去

示例:

ADD test.txt /mydir/

(8)ENTRYPOINT

可让容器像一个可执行程序一样运行,这样镜像运行时可以像软件一样接收参数执行。ENTRYPOINT是运行时动作。

示例:

ENTRYPOINT ["/bin/echo"]

我们可以向镜像传递参数运行:

docker run -d image_name "this is not a test"

文章转自《Spring Boot实战》

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ruoyi-cloud是一个开源的基于Spring Cloud的快速开发平台,它提供了一套完整的微服务解决方案,包括认证中心、配置中心、监控中心、网关等常用组件。Docker是一种应用容器化技术,能够将应用程序运行所需的环境、依赖和配置等封装在一个独立的镜像中,并快速、一致地部署到不同的部署环境中。 在Ruoyi-cloud项目中,可以采用Docker来快速部署,具体步骤如下: 1.安装Docker:在部署机器上安装Docker,可以通过Docker官网获取安装步骤和镜像源。 2.通过Dockerfile构建镜像:在项目根目录下创建一个名为Dockerfile的文件,并指定使用哪一个基础镜像、配置环境变量、包括应用程序,最后通过Dockerfile构建新的镜像: FROM java:8 WORKDIR /app COPY target/ruoyi-cloud.jar /app CMD ["java", "-jar", "ruoyi-cloud.jar"] 3.推送镜像Docker Hub:将构建好的镜像推送到Docker Hub,以便在其他环境中使用。 4.在生产环境中拉取并运行镜像:在生产环境中通过Docker pull命令拉取镜像,并通过Docker run命令运行镜像docker pull your-user-name/ruoyi-cloud:latest docker run -d -p 8080:8080 your-user-name/ruoyi-cloud:latest 其中,your-user-name为Docker Hub中的用户名,需要在推送镜像时指定。 通过以上步骤,可以快速方便地将Ruoyi-cloud项目部署到不同的环境中,也可以通过Docker Compose或Kubernetes等更高级的容器编排工具实现滚动更新、负载均衡等更高级的部署方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值