Docker-Compose发布与部署

    |     2023年9月14日   |   Java技术, web前端技术   |     0 条评论   |    322

上节我们跑了两个容器:Web 项目 + Redis。依赖的第三方软件越多,要管的容器就越多,每个都要单独配置、指定网络。这节用 docker-compose 把多个服务写进一份描述,一键跑起来,并演示发布到阿里云镜像仓库。

系列前文:

一、安装 Docker Compose

  • 桌面版 Docker 已经包含 Compose,不用额外安装。
  • 没有图形界面的服务器版 Docker,需要单独安装,见 安装文档。
  • 运行 docker-compose 检查是否安装成功。

二、编写脚本

项目示例:D:\projects\workspace_web\GuoguWebadmin。要把依赖的多个服务集合到一起,编写 docker-compose.yml 描述依赖哪些服务。参考文档:https://docs.docker.com/compose/

version: "3.7"

services:
  app:
    build: ./
    ports:
      - 8089:8089
    volumes:
      - ./:/app
    environment:
      - TZ=Asia/Shanghai
  mysqldb:
    image: mysql:5.7
    ports:
      - 3307:3306
    environment:
      MYSQL_DATABASE: guguodb
      MYSQL_USER: zhousir
      MYSQL_PASSWORD: b123
      MYSQL_ROOT_PASSWORD: 'b123'
    volumes:
      - mysqldb:/data
volumes:
  app:
  mysqldb:

容器默认时间不是北京时间,增加 TZ=Asia/Shanghai 可以改为北京时间。

三、跑起来

在 docker-compose.yml 所在目录执行 docker-compose up 就可以跑起来。命令参考:https://docs.docker.com/compose/reference/up/

步骤 做什么
安装 Compose 桌面版自带;服务器版按官方文档安装,docker-compose 验一下
写 yml 描述 app、mysqldb 等服务、端口、环境变量和卷
启动 在 yml 目录执行 docker-compose up
发布 tag 后 push 到镜像仓库(可用阿里云)

四、发布和部署

镜像仓库介绍

镜像仓库用来存储 build 出来的「安装包」。Docker 官方提供了一个 镜像库,里面包含大量镜像,各种软件依赖基本都能搜到。

也可以把自己 build 的镜像上传到官方镜像库方便传播;或者搭建私有镜像库,或使用国内大厂的镜像托管,例如阿里云、腾讯云。

阿里云容器托管

官方镜像托管有时上传下载太慢,可以用阿里云的免费镜像托管。登录 阿里云:

kv9dqxuo

推送镜像:

docker login --username=viktor028 registry.cn-hangzhou.aliyuncs.com

docker tag guoguwebadmin:v1 registry.cn-hangzhou.aliyuncs.com/yuguo_zhousir/guguowebadmin:v1

docker push registry.cn-hangzhou.aliyuncs.com/yuguo_zhousir/guguowebadmin:v1

拉取:用同样的仓库地址 docker pull 即可。

一句话总结:用 docker-compose.yml 把 app 和依赖服务一次拉起;镜像用 tag + push 发到阿里云仓库,方便部署。

转载请注明来源:Docker-Compose发布与部署
本文链接地址:https://ai.zhousir.top/?p=3450
回复 取消