Docker笔记(使用Dockerfile构建简单Web项目镜像)

534 阅读1分钟

此篇的Demo项目不涉及到数据库、缓存框架、代理转发、负载等复杂情景,仅记录最简单的Spring boot web项目的Docker镜像构建。

一、准备工作

(1)搭建一个简单的Spring boot Web项目,访问Hello World

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }
	
}

启动项目之后,访问http://localhost:端口号/hello,就可以看到项目返回的Hello World信息

image.png

(2)将项目构建成jar包

mvn clean package # 使用Maven打包项目

项目名称为docker-demo,打包出来的jar包为docker-demo-0.0.1-SNAPSHOT.jar

(3)将jar包上传到服务器,这里是将jar包上传到了/mnt/docker/的目录下

二、创建Dockerfile文件

(1)在jar包所在目录,创建名为Dockerfile的文件

sudo touch /mnt/docker/Dockerfile

(2)在Dockerfile文件添加以下内容

# 基于哪个镜像
FROM java:8

# 将本地文件夹挂载到当前服务器
VOLUME /tmp

# 复制文件到容器
ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'

# 声明需要暴露的端口
EXPOSE 8082

# 配置容器启动后执行的命令
ENTRYPOINT  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

三、构建镜像

使用 docker build 命令构建镜像

sudo docker build -t xanthin/docker-demo:0.0.1 .

格式:docker build -t 仓库名称/镜像名称:(标签) Dockerfile的相对位置
执行之后,终端会输出以下内容:

image.png

四、启动与测试镜像

(1)启动镜像

sudo docker run -d -p 8082:8082 xanthin/docker-demo:0.0.1

(2)查看镜像状态

sudo docker ps -a

如果能看到名为xanthin/docker-demo:0.0.1的镜像,并且STATUS为Up,说明镜像已运行

image.png (3)访问spring boot web项目
访问http://Docker宿主机IP:8082/hello,将会看到项目返回的Hello World信息

image.png