在线考试系统镜像构建、推送、部署

前提

  • 本地安装docker、docker-compose

  • 注册阿里云账号

步骤

  1. 在本地开发环境构建镜像
  • 后端项目

spring-microservice-exam目录下运行:

1
mvn clean package

docker插件配置打包的同时构建镜像

image

构建成功:

image

  • 前端项目

spring-microservice-exam-ui为例,在spring-microservice-exam-ui目录下运行打包命令:

1
npm run build

运行成功后会生成dist目录,里面是项目的静态资源,再运行构建镜像命令

1
docker build -t registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/spring-microservice-exam-ui:2.0 .

本地试运行命令:

1
docker run -d -p 80:80 --name spring-microservice-exam-ui registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/spring-microservice-exam-ui:2.0
  1. 创建命名空间和镜像仓库

登录阿里云控制台,在容器镜像服务菜单下,创建spring-microservice-exam命名空间和各服务的仓库

如:config-serviceauth-servicespring-microservice-ui

image

  1. 在开发环境将镜像推送到仓库:

config-service为例

1
docker push registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/config-service:2.0
  1. 登录腾讯云服务器,拉取镜像

登录阿里云Docker Registry:

1
docker login --username=你的阿里云账号 registry.cn-hangzhou.aliyuncs.com

拉取镜像:

1
docker pull registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/config-service:2.0
  1. 运行镜像:
1
docker run -d -p 8769:8769 --name config-service registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/config-service:2.0

docker常用命令

1. 查看所有容器:docker ps -a
2. 删除镜像:docker rmi imageId
3. 删除容器:docker rm containerId
4. 直接运行一个停止的容器:docker start containerId
5. 进入容器:docker exec -it 09d2a6ee4095 /bin/bash
6. 退出容器:exit
7. 将容器打包成镜像:docker commit containerId imageName,如:docker commit 1f9dfc05e3ad spring-microservice-exam-mysql

docker-compose

基本命令:

基本命令:

    1. 启动镜像:docker-compose up
    2. 后台启动:docker-compose up -d // 后台启动并运行容器
    3. 指定配置文件:docker-compose -f docker-compose-base.yml up
    4. 构建服务:docker-compose -f docker-compose-base.yml build
    5. 列出所有容器:docker-compose ps
    6. 删除容器:docker-compose rm container,如:docker-compose rm config-service
    7. 停止正在运行的容器:docker-compose stop

使用示例

MySQL镜像构建、运行、初始化的docker-compose例子:

docker-compose-env.yml:

  # MySQL
  spring-microservice-exam-mysql:
    image: mysql:5.7
    volumes:
      - data:/var/lib/mysql
      # 自动执行初始化脚本
      - ./doc/deploy/mysql:/docker-entrypoint-initdb.d/
    environment:
      MYSQL_ROOT_PASSWORD: 11 # root账户的密码
    restart: always
    container_name: spring-microservice-exam-mysql
    ports:
      - 3306:3306
  volumes:
    data:
      driver: local

运行:docker-comopse -f docker-comopse-env.yml up
原文地址:https://www.cnblogs.com/7788IT/p/11372842.html