📚
handbook
  • Introduction
  • 1.前言
    • 前言
    • 鸣谢
  • 2.环境篇
    • 工具部署和使用
      • 团队协作工具
        • Confluence
      • 开发工具
        • Docker
          • 镜像导入导出
          • 安装
        • Docker Compose
      • 持续集成工具
        • Gerrit
        • Sonarqube
          • 分析参数设定
          • Prerequisite
          • 服务端设置
        • Ubuntu Ci Deploy
          • ubuntu使用docker部署jenkins+sonarqube
        • 持续集成部署
      • 文本编辑工具
        • Gitbook相关注意事项
        • Markdown快速入门
      • 版本控制
        • Git
          • 1.基础
            • Git基础(一)
            • Git基础(二)
            • Git基础(三)
            • Git基础(四)
            • Git基础(五)
          • 2.命令详解
            • 命令速查
          • 3.进阶技巧
            • git技巧
      • 自动化测试工具
        • Appium
          • capability参数配置
          • 安装
          • 简介
      • 项目管理工具
        • Jira
    • 开发环境配置
      • 通用
        • Homebrew安装与使用
        • Git服务器添加SSH Key
        • koroFileHeader使用
        • nodejs与npm的安装
        • npm更换国内源
        • pip使用相关
        • PostgreSQL安装与使用
        • proxychain安装与使用
        • shell配置环境变量
        • snapd安装与使用
        • terminal走代理
    • 快捷键速查
      • shell常用快捷键
  • 3.语言篇
    • C
      • 代码规范
      • 语言技巧
    • Cpp
      • 代码规范
      • 基础知识
        • 理解C++中的左值和右值
      • 语言技巧
        • 并发编程
          • 简单的线程池实现
    • Golang
      • 代码规范
        • 避免使用转义字符串
        • 避免参数语义不明确
        • 嵌套式结构体
        • 函数的分组与顺序
        • 函数命名
        • 声明一致性
        • 导入别名
        • 使用字段名初始化结构体
        • 本地变量声明
        • map初始化
        • nil用法
        • 包命名
        • 命名Printf样式的函数
        • 减少嵌套
        • 缩小变量作用域
        • struct引用初始化
        • 测试表声明
        • 顶层变量声明
        • 不必要的else
      • 环境配置
        • 代码检查格式化工具
          • Go Fmt
          • Goimports
          • Golint
          • Go Vet
        • go mod详解
        • golang安装
        • Golang开发环境
        • Troubleshooting
      • 语言技巧
        • 如何分包
    • Java
      • 代码规范
      • 语言技巧
        • 注解编程
        • 动态代理
    • Js
      • 语言技巧
        • Rollup
    • Kotlin
      • 基础知识
        • 写给开发者Kotlin指引(一)
        • 写给开发者Kotlin指引(二)
    • Python
      • 语言技巧
        • Best Practice Of Python S Project Structure
  • 4.规范篇
    • Git message规范
  • 5.技术篇
    • Android技术
      • Hook
        • EdXposed例子
        • Android 10 上安装Magisk和EdXposed
      • Tinker
        • 1.Tinker及其使用
      • 准备
        • ADB连接设备步骤及注意事项
        • adb连接设备
        • aosp编译
      • 基础
        • Binder接口调用的鉴权方法
        • Make 及 Android 编译系统介绍
        • 使用Content Provider为其他应用提供数据
      • 源码阅读
        • Framework源码分析 Looper Handler
        • Framework源码分析 启动流程 ServiceManager的初始化
        • Framework源码分析 启动流程 Zygote启动SystemServer
    • JS Bridge
      • JSBridge初探
    • Kernel技术
      • kallsyms子系统
    • Test技术
      • 软件测试
        • jnekin+sonar 部署 问题总结
        • 性能测试基础
        • 软件测试的背景
        • 测试基础
        • 测试人员的核心竞争力
    • 操作系统原理
      • 处理器如何实现原子操作
Powered by GitBook
On this page
  • 背景说明
  • 安装
  • 一个例子
  • 下载mysql和redis镜像
  • 创建需要映射的目录
  • 编写docker-compose.yml
  • docker-compose.yml文档说明
  • 常用命令
  • 启动
  • 查看
  • 关闭
  • HELP

Was this helpful?

  1. 2.环境篇
  2. 工具部署和使用
  3. 开发工具

Docker Compose

背景说明

当前随着互联网业务越来越复杂,越来越多的业务被拆分,所以现在微服务的理念越来越受欢迎,当前支撑微服务部署的就是k8s和docker,现在很多组建都开始docker,如mysql,redis等等,那如何管理这么多的docker镜像?怎么方便得启动这些服务?这就是docker-compse工具诞生的背景

安装

通过pip工具安装

$pip install docker-compose

或者

$pip3 install docker-compose

安装完成后查看版本确认是否安装成功

$docker-compose -v

一个例子

下面看一个实际的例子,这个是通过docker-compose来管理mysql和redis这两个docker服务

下载mysql和redis镜像

$docker pull mysql
$docker pull redis

创建需要映射的目录

$mkdir -p /Users/sphantix/Data/data/docker/mysql/db

编写docker-compose.yml

写入如下内容, 注意volumes映射部分需要改成自己本机目录

version: "3.9"
services:
  mysql:
    image: "mysql:latest"
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=toor
    volumes:
      - /Users/sphantix/Data/data/docker/mysql/db:/var/lib/mysql
      - /Users/sphantix/Data/data/docker/mysql/config:/etc/mysql/conf.d
      - /Users/sphantix/Data/data/docker/mysql/my.cnf:/etc/my.cnf
  redis:
    image: "redis:latest"
    command: redis-server /usr/local/etc/redis.conf
    ports:
      - 6379:6379
    volumes:
      - /Users/sphantix/Data/data/docker/redis:/data
      - /Users/sphantix/Data/data/docker/redis/redis.conf:/usr/local/etc/redis.conf

docker-compose.yml文档说明

  • services 表示docker-compose需要管理的服务,在上面的例子中,有两个服务: mysql和redis

下面对服务中使用到的关键词做个说明

  • image 表示需要启动的镜像名称,格式是REPOSITORY:TAG

  • ports 表示启动镜像后,需要映射的端口号,格式是host_port:container_port, 等同与docker启动命令中的-p, 如果有多个端口映射,那用多行表示

  • environment 表示启动镜像后,需要传给容器的环境变量,等同于docker启动命令中的-e

  • volumes 表示启动镜像后,需要映射的路径地址,格式是host_path:container_path, 等同于docker启动命令中的-v

常用命令

启动

docker-compose up, 如果需要后台运行则加入-d参数, docker-compose up -d

查看

docker-compose ps, 查看命令和docker命令一样

关闭

docker-compose stop, 也和docker停止命令一样

HELP

通过docker-compose -h,这个万能命令查询所有能用的命令

Previous安装Next持续集成工具

Last updated 4 years ago

Was this helpful?

version 表示的是docker-compose的语法版本,不同的版本会有一些差异,具体看

这里