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
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐