3.应用的容器化——javaWeb的小demo

应用的容器化

Docker的核心思想就是如何将应用整合到容器中,并且能在容器中实际运行。

将应用整合到容器中并且运行起来的这个过程,称为“容器化”

完整的应用容器化过程主要分为以下几个步骤。

(1)编写应用代码。

(2)创建一个Dockerfile,其中包括当前应用的描述、依赖以及该如何运行这个应用。

(3)对该Dockerfile执行docker image build命令。

(4)等待Docker将应用程序构建到Docker镜像中。

一旦应用容器化完成(即应用被打包为一个Docker镜像),就能以镜像的形式交付并以容器的方式运行了。

Demo

新建一个Springboot的demo项目,使用了SpringMVC,新建了一个controller接口,如下:

@RestController
public class Hello {
    @GetMapping("")
    public String hello() {
        return "Hello Docker";
    }
}

从浏览器访问端口,可以获取到一下结果:

在这里插入图片描述

具体操作如下:

1. 打包

把项目打成jar包,在项目目录下,使用命令:

mvn package

jar包会在 target包下。

2. 编写Dockerfile

新建Dockerfile,跟pom文件同级

在这里插入图片描述

Dockerfile内容如下:

# 基于alpine环境搭建镜像
FROM alpine
# 下载jdk8环境
RUN apk add --update openjdk8
# 把打好的jar包,copy到镜像的指定位置
COPY target/demo-0.0.1-SNAPSHOT.jar /home/work/be/demo/demo-0.0.1-SNAPSHOT.jar
# 指定工作环境目录
WORKDIR /home/work/be/demo

# 暴露8080端口
EXPOSE 8080
# 运行后执行该命令 java -jar demo-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"]

3. 根据Dockerfile构建镜像

在Dockerfile所在的文件夹打开cmd窗口,然后执行构建命令:

docker image build -t java-demo:latest .

命令执行完成后,查看镜像列表:

docker image ls

测试,新构建出来的镜像应该是存在的。

4. 运行镜像

这个运行的时候,不需要连接到内部的命令行了,直接让它运行web程序就可以了。命令如下:

docker run -d --name cl -p 80:8080 java-demo

运行成功之后会返回给你一串字符

此时应该就可以在浏览器中访问到这个页面了,在地址栏中输入:

localhost

然后回车,应该就会出现Hello Docker 字样

命令回顾:

使用Dockerfile构建镜像:

docker image build

-t 为镜像打标签
-f 指定Dockerfile的文件路径和名称

Dockerfile中的命令:

FROM 指定要构建的镜像使用的基础镜像,通常是Dockerfile的第一条指令
RUN  在镜像中执行命令,会新建新的镜像层
COPY 将文件作为一个新的层添加到镜像中,通常用于将应用代码复制到镜像中
EXPOSE 记录所使用的网络端口,对外暴露这个端口
ENTRYPOINT 入口点,指定镜像一容器的方式启动后默认运行的程序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值