Docker部署Springboot项目

背景

环境:CentOS7
项目:Springboot: docker-demo
CentOS7安装Docker
Docker部署vue项目

Dockerfile创建镜像

  • 创建Dockerfile文件
# 当前镜像基于openjdk17镜像
FROM openjdk:17.0.2-slim
# 容器对外暴露8090端口(此处可不暴露,创建容器时做端口映射即可)
EXPOSE 8090
# 将主机jar包拷贝至镜像opt文件夹下
ARG JAR_FILE=./docker-demo.jar
ADD ${JAR_FILE} /opt/docker-demo.jar
# 将主机docker-demo项目配置文件拷贝至镜像opt/config文件夹下
ARG CONF_FILE=./config/application.properties
ADD ${CONF_FILE} /opt/config/application.properties
# 启动容器后执行的命令
ENTRYPOINT ["java", "-jar", "/opt/docker-demo.jar", "--add-opens=java.base/java.lang=ALL-UNNAMED", "--spring.config.location=/opt/config/"]
  • 通过Dockerfile创建镜像
    • 当前命令必须在Dockerfile文件所在目录下执行
    • 命令行后有个点号
docker build -t service-demo:1.0.0 .
  • 查看镜像
docker images

Docker部署Springboot项目_第1张图片

docker-compose生成容器

  • 命令方式生成容器
docker run -it -p 8090:8080 --name=service-test service-demo:1.0.0
  • 安装docker-compose(已安装忽略)
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  • 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
  • 测试安装结果
docker-compose --version

在这里插入图片描述

  • 创建docker-compose.yml文件
# docker-compose版本
version: '3'

# 可配置多个
services:
  server-test:
    # 新容器名称
    container_name: server-test
    # 来源镜像及版本
    image: service-demo:1.0.0
    # 指定时区
    environment:
      TZ: Asia/Shanghai
    # docker启动后立即启动该容器
    restart: always
    # 将8080端口对外映射为8090
    ports:
      - 8090:8080
    # 挂载主机项目下该项目jar包和配置文件信息至容器内(更新主机文件内容,对应容器挂在文件也会更新)
    volumes:
      - ./config:/opt/config
      - ./docker-demo.jar:/opt/docker-demo.jar
    # 指定自定义网络(相同网络下不同容器间可以通过容器名代替ip互相访问)
    networks:
      - docker-host
networks:
  docker-host:
    external: true
  • 创建容器
docker-compose up -d

验证

  • 查看容器
docker ps

在这里插入图片描述

  • 测试接口
    Docker部署Springboot项目_第2张图片

安装可视化工具portainer

  • 查看portainer镜像
docker search portainer

Docker部署Springboot项目_第3张图片

  • 拉取镜像portainer/portainer
docker pull portainer/portainer
  • 创建portainer容器
# 启动镜像
docker run -d -p 9000:9000 --restart=always \-v /var/run/docker.sock:/var/run/docker.sock \
--name portainer portainer/portainer
  • 验证
    Docker部署Springboot项目_第4张图片

你可能感兴趣的:(docker,spring,boot,java,运维)