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

前提

  • 本地安装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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以回答这个问题。Docker 是一种容器化技术,可以将应用程序及其依赖项打包成一个可移植的容器,方便在不同的环境中部署和运行。构建 Docker 镜像可以使用 Dockerfile 文件来定义镜像构建过程,推送镜像可以使用 Docker Hub 或其他镜像仓库来存储和分享镜像。 ### 回答2: Docker是一种开源的容器化平台,能够帮助开发人员和运维人员更高效地构建、打包、分发和运行应用程序。Docker的核心概念是镜像(Image)和容器(Container)。 首先,构建镜像是指将一个应用程序的代码、依赖项以及配置文件等打包成一个可执行的镜像文件。在构建镜像之前,我们需要编写一个Dockerfile,其中包含了构建镜像所需的步骤和指令。Dockerfile可以指定基础镜像、安装软件、配置环境变量等内容。通过执行docker build命令,Docker会根据Dockerfile的指令来逐步构建镜像,并生成一个唯一的镜像标识符。 接下来,推送镜像是将构建好的镜像上传到Docker镜像仓库中,以便其他人或其他机器可以下载和使用这个镜像Docker镜像仓库是一个集中存储和管理镜像的地方,可以方便地共享和分发镜像推送镜像之前,我们需要先登录到镜像仓库,然后使用docker push命令将本地镜像推送到指定的仓库地址和版本号。 通过Docker构建镜像推送镜像仓库,可以带来一些好处。首先,镜像可以快速部署和启动,减少了应用程序的依赖和配置问题。其次,镜像具有良好的可重复性,可以在不同的环境中使用相同的镜像来保持一致性。此外,镜像可以方便地进行版本控制和更新,而且可以在不同的主机上快速部署相同的应用程序。 总体而言,Docker构建镜像推送镜像Docker平台的核心功能之一,可以帮助开发人员和运维人员更加高效地管理和分发应用程序。通过合理地使用Docker构建推送镜像,可以提高开发效率、降低部署成本,并且可以方便地进行版本控制和更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值