Skip to content
On this page
geelevelgeelevel

本地使用 Docker-compose

安装 docker-compose, 参考官方文档

如何在 Linux、Mac、Windows 安装 docker-compose, 点击展开查看

在Linux安装

# 1.1 运行此命令以下载Docker Compose的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 1.2 将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose 

使用 Python 的 pip 安装

pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple

使用 Docker Desktop

使用 Git 克隆并进入本项目

git clone https://github.com/flipped-aurora/gin-vue-admin.git && cd gin-vue-admin

使用 docker-compose up 一键启动项目

# 使用docker-compose启动四个容器
docker-compose -f deploy/docker-compose/docker-compose.yaml up
# 如果您修改了某些配置选项,可以使用此命令重新打包镜像
docker-compose -f deploy/docker-compose/docker-compose.yaml up --build
# 使用docker-compose 后台启动
docker-compose -f deploy/docker-compose/docker-compose.yaml up -d
# 使用docker-compose 重新打包镜像并后台启动
docker-compose -f deploy/docker-compose/docker-compose.yaml up --build -d
# 服务都启动成功后,使用此命令行可清除none镜像
docker system prune

注意事项

使用 docker-compose 体验时需注意的问题

  1. 在初始化数据页面中
  • ip 请填写 docker-compose.yaml 的第 56 行的 ip,或直接使用 mysql,如下图

  • 数据库为 qmPlus

  • 端口为 3306

  • 用户名为 gva

  • 密码为 docker-compose.yaml 的 52行定义的数据库密码

docker-playground

  1. 如果 server 的 177.7.0.12 这个容器内部ip被占用了, 需要修改地方为

使用 docker-compose 部署时需注意的问题

  1. docker-compose 使用自定义的一个 docker 网络

    •   networks:
          network:
            ipam:
              driver: default
              config:
                - subnet: '177.7.0.0/16' 
      
    • 子网地址, 默认网关是 177.7.0.1 (docker-compose V2 需要写, V3 则不需要), 具体信息看官方文档

    • 默认的 network 名为 gin-vue-admin_network, 默认是 bridge 模式

    • 如果修改了子网,对应的每个 service 的 ipv4_address 都需要修改, 还有web/.docker-compose/nginx/conf.d/my.conf 的第 20 行的 server 的 ip 也需要修改

  2. server/Dockerfile 使用了多阶段构建,这是 docker 17.05 后引入的,因此安装的docker版本需要高于 17.05

  3. mysql 数据库请使用装在服务器磁盘的本地数据库

    • 避免使用 docker 容器内的 mysql, 可能会出现写入的问题, io 比宿主机低 docker 的持久化机制问题.
  4. 使用本项目的 docker-compose 进行部署时, 请修改docker-compose.yaml 对应的 nginx配置, mysql 配置, networks 配置,redis配置,按需自行更改.

Copyright © 2020-2024 Flipped-aurora Open Source Community