docker-compose部署SpringBoot项目的两种方式(构建镜像和挂载文件)
Docker是一种基于容器技术的轻量级虚拟化平台,用于快速部署和运行应用程序。它通过容器隔离应用及其依赖项,实现跨环境一致运行。本文演示了两种在Docker中部署SpringBoot项目的方法:一是通过Dockerfile构建自定义镜像并配合docker-compose编排;二是直接挂载文件方式运行现有Java镜像。两种方式均展示了端口映射、卷挂载等关键配置,并提供了常用docker-compos
Docker是一组平台即服务(PaaS)的产品。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为容器。托管容器的软件称为Docker引擎。Docker能够帮助开发者在轻量级容器中自动部署应用程序,并使得不同容器中的应用程序彼此隔离,高效工作。该服务有免费和高级版本。它于2013年首次发布,由Docker, Inc. 开发。
Docker是一个开源的平台 ,用于开发、交付和运行应用程序。它能够在Windows,macOS,Linux计算机上运行,并将某一应用程序及其依赖项打包至一个容器中,这些容器可以在任何支持Docker的环境中运行。容器彼此隔离,但可以通过特定的通道相互传递信息。
Docker提供了一个轻量级的虚拟化解决方案。由于运行在同一计算机上的所有容器共享同一个操作系统内核,避免了启动与维护虚拟机的开销。因此相比于传统的虚拟机,Docker容器更加轻便、快速、容易部署。使用Docker,开发者可以避免在两台计算机上运行效果不一致的问题,容器提供了一致的行为,进而使得应用程序在不同环境的计算机上有相同的运行效果。
本例演示docker环境部署SpringBoot项目
演示环境配置列表
- CentOS 7.9.2008
- docker 19.03.1
- docker-compose 1.24.1
一、构建镜像方式
1 创建Dockerfile文件
FROM openjdk:8
LABEL maintainer="yourname@domain.com"
ENV TZ=Asia/Shanghai
EXPOSE 8080
# 别名 将mk-admin 改名为app,与docker-compose.yml中对应
ADD mk-admin.jar app.jar
# 服务器配置文件
ADD application.yml application.yml
# 修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
2 编写docker-compose.yml文件
version: "3"
services:
app-dev:
restart: always
container_name: app-dev
image: app:1.0
build: . # 表示以当前目录下的Dockerfile开始构建镜像
ports:
- "8080:8080"
volumes:
- /etc/localtime:/etc/localtime:ro #将外边时间直接挂载到容器内部,权限只读
- ./app/logs:/app/logs
- ./app/uploadPath:/app/uploadPath
3 生成应用镜像并启动容器服务
docker-compose up -d --build
docker-compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过使用 YAML 文件来配置应用程序的服务,可以轻松地创建和启动所需的容器。下面是一些常用的 docker-compose 命令及其参数的详细解释:
初始化 docker-compose up 创建并启动所有服务容器。
参数:
-d:在后台运行容器。
--build:在启动前构建或重新构建服务镜像。
--no-deps:不启动服务链接的容器。
构建docker-compose build构建或重新构建服务。
二、挂载文件方式
1 编写docker-compose.yml文件
version: '3.3'
services:
mk-admin-java-app:
image: java:8 # 使用上面构建的镜像
container_name: mk-admin-java-app # 容器名称
ports:
- "8088:8080" # 将容器的8080端口映射到主机的8088端口
volumes:
- ./mk-admin.jar:/app/mk-admin.jar
- ./application.yml:/app/application.yml
- ./logs:/data/logs
- ./template:/opt/template
- ./file:/data/file
working_dir: /app # 设置工作目录
command: java -jar mk-admin.jar # 启动命令
2 启动容器服务
docker-compose up 创建并启动所有服务容器。
docker-compose up -d更多推荐
所有评论(0)